在服务器上监视并重新启动Dart进程

时间:2013-11-11 00:01:00

标签: 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...

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

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

(通过mod_dart在Apache中托管可能是一种选择 - 但感觉有些过分但当前版本不稳定。)

2 个答案:

答案 0 :(得分:3)

考虑以下工具:

  1. http://supervisord.org/ Supervisor是一个客户端/服务器系统,允许其用户监视和控制类UNIX操作系统上的许多进程。

  2. http://upstart.ubuntu.com/ Upstart是/ sbin / init守护程序的基于事件的替代,它在启动期间处理任务和服务的启动,在关机期间停止它们并在系统运行时监督它们。

  3. 选择最符合您需求的工具,无论如何都可以使用这些工具

答案 1 :(得分:2)

我在我的GCE Debian实例上使用Monit,易于设置和一个漂亮的小网页界面,以便于管理。