2013-11-11 2 views
1

Мои легкие dart:io на основе веб-сервера в значительной степени выглядит следующим образом:Monitor и перезапустить процесс Dart на сервере

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... 

Все хорошо выглядеть так далеко. Я могу выйти из своей оболочки, и она продолжает служить. Однако, если что-то идет ужасно неправильно - например, вызывается необработанное исключение - процесс Дарта идет вниз.

Любая рекомендация, как контролировать процесс дартс и при необходимости перезапустить его? Думаю, я мог бы написать простой скрипт для этого, просто интересно, есть ли лучший/рекомендуемый способ?

(хостинг в Apache с помощью mod_dart может быть вариант - чувствует себя излишним, хотя и текущая версия нестабильна.)

ответ

3

рассмотреть следующие инструменты:

  1. http://supervisord.org/ Supervisor представляет собой систему клиент/сервер что позволяет его пользователям контролировать и контролировать ряд процессов в UNIX-подобных операционных системах.

  2. http://upstart.ubuntu.com/ Upstart - это замена, основанная на событии для демона/sbin/init, который обрабатывает запуск задач и служб во время загрузки, останавливает их во время выключения и контролирует их во время работы системы.

выбрать тот, который наилучшим образом соответствует вашим потребностям, эти инструменты являются большими, чтобы иметь в своем арсенале все равно

+0

Upstart отлично работает. Благодаря! – Max

+0

Пример конфигурации + инструкции по установке: https://github.com/dartist/dart-upstart – Max

2

Я использую Monit на моем случае GCE Debian, проста в настройке и миленький веб-интерфейс для облегчения управление.

Смежные вопросы