1

我的基于轻量级dart:io的 Web 服务器看起来像这样:

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中可能是一种选择 - 虽然感觉有点矫枉过正,而且当前版本不稳定。)

4

2 回答 2

3

考虑以下工具:

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

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

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

于 2013-11-11T00:52:05.310 回答
2

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

于 2013-11-28T12:09:02.213 回答