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