Перезапустить навсегда.js для приложения node.js через cron?

Мое приложение node.js иногда падает, а иногда навсегда. js автоматически перезапускает его, а иногда нет.

В журналах ничего нет - я всегда работаю с опцией '-e', но это не сохраняет журнал ошибок - мой основной журнал просто обрывается и все...

Устал пытаться понять это, интересно, есть ли другое решение: могу ли я настроить cron, который будет проверять мой URL-адрес на наличие кода 503, и если это так, он перезапустит приложение, используя навсегда?

Я знаю, как сделать сценарий bash белым, чтобы он запускался навсегда, но как проверить, возвращает ли URL-адрес код 503?

Спасибо!


person Aerodynamika    schedule 27.03.2015    source источник
comment
Почему бы не отлаживать свое приложение, чтобы оно не зависало? И я предлагаю вам отказаться от Forever и использовать систему инициализации вашего дистрибутива по умолчанию, такую ​​​​как systemd, которая может автоматически перезапускать процессы, если они неожиданно завершаются.   -  person    schedule 27.03.2015
comment
Используйте команду curl, если вы хотите проверить, правильно ли ваше приложение отвечает на http.   -  person Peter Lyons    schedule 27.03.2015
comment
@andré, в чем преимущество systemd перед навсегда?   -  person Aerodynamika    schedule 30.03.2015


Ответы (1)


Запустите свое приложение следующим образом:

nohup forever app.js > logs &
person daniel    schedule 31.03.2015
comment
@deemeetree позволяет продолжить выполнение команды в фоновом режиме после закрытия терминала. Но, как я уже говорил в своих комментариях, использование systemd намного надежнее и не требует ручного вмешательства для запуска/перезапуска службы в случае ее сбоя. - person ; 31.03.2015
comment
Да nohup так не делает. Я всегда использовал nodejs и всегда уважал: ваш скрипт завершится, если он не будет работать не менее 1000 мс. Но если у вас не работает... просто используйте это... но все равно сначала отлаживайте свой код. - person daniel; 31.03.2015
comment
Я действительно понял, что мой провайдер просто убивал все процессы, поэтому я думаю, что навсегда не перезапустит приложение из-за этого. Так что в этом случае systemd будет лучшим выбором, верно? - person Aerodynamika; 01.04.2015
comment
(Они убивают мои процессы, потому что база данных графов neo4j использует слишком много памяти и пока находится на общем сервере) - person Aerodynamika; 01.04.2015
comment
@daniel, если я использую nohup forever app.js › журналы и команды, я получаю сообщение в своем терминале. Можете ли вы объяснить, в чем проблема в этом. terminal@mymac : /var/www/node/chat$ nohup: игнорирование ввода и перенаправление stderr на stdout - person Pritesh Mahajan; 17.08.2016