ubuntu - 监控并重启服务器上的 Dart 进程

标签 ubuntu dart ubuntu-12.04 dart-io

我的轻量 dart:io基于网络的服务器几乎看起来像这样:

import 'dart:io';

void main() {

  HttpServer.bind(InternetAddress.ANY_IP_V4, 80).then((server) {
    server.listen((HttpRequest request) {
      // ... do stuff...
      request.response.write('Alright, here is your response...'); 
      request.response.close();
    });
  }); 

  print("listing...."); 

}

让我们启动它(在 Ubuntu Server 1.04 上):
$ nohup dart myServer.dart &
Listening...

到目前为止一切看起来都很好。我可以退出我的外壳,它会继续服务。但是,如果出现严重错误 - 例如抛出未处理的异常 - Dart 进程停止。

有什么建议如何监控 Dart 进程并在必要时重新启动它?我想我可以为此编写一个简单的脚本,只是想知道是否有更好/推荐的方法?

(通过 mod_dart 托管在 Apache 中可能是一种选择 - 虽然感觉有点矫枉过正,而且当前版本不稳定。)

最佳答案

考虑以下工具:

  • http://supervisord.org/ Supervisor 是一个客户端/服务器系统,它允许其用户监视和控制类 UNIX 操作系统上的许多进程。
  • http://upstart.ubuntu.com/ Upstart 是/sbin/init 守护进程的基于事件的替代品,它在引导期间处理任务和服务的启动,在关闭期间停止它们并在系统运行时监督它们。

  • 选择最能满足您需求的工具,无论如何这些工具都非常适合您的工具箱

    关于ubuntu - 监控并重启服务器上的 Dart 进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19896836/

    相关文章:

    ubuntu - Elasticsearch 问题-我使用命令 curl -X GET "localhost:9200",不工作 4 curl -X GET "public_ipv4_of_ubuntu_server:9200"

    mysql - 如何杀死持有 apt 锁的进程

    java - 如何在 ubuntu 中设置 java 中的类路径以及如何使用 jar?

    c++ - 编译有效,启动不是 - "standard path"?

    flutter - 如何仅在调用 onPressed 时更改 CupertinoButton 背景颜色

    dart - 从 DOM 中删除并再次插入后如何更新聚合物元素绑定(bind)

    android - 函数在 android 中返回负值,但在 flutter 应用程序中的 web 上返回正值

    c - lua51 c 共享库问题

    linux - 为什么客户端在TCP握手过程中发送一个RST数据包?

    bind - fusionrmount 调用类似于本地目录的 mount --bind ?