Мой сервис очень простой, просто HTTP-сервис. Я просто хочу, чтобы он автоматически перезапускался, когда он завершает работу из-за ошибки. Я подумал, что могу использовать runit для этого, но похоже, что в документации runit в основном говорится о том, как преобразовать весь ваш init.d в runit. Я хочу сохранить init.d и просто использовать runit для своей единственной службы.
Я смотрел на эти документы.
Спасибо.
РЕДАКТИРОВАТЬ: я думаю этот указывает в правильном направлении, я думаю, мне просто нужно знать, как сделать сервис сейчас.
Node действительно просто запустить с runit. Предполагая, что вы уже установили runit в стандартном макете каталога, создайте каталог /service/node-service
и поместите создать файл /service/node-service/run
:
#!/bin/sh
chpst -unobody node /path/to/your-service.js
Сделайте этот запускаемый скрипт исполняемым (chmod + x run), и вы можете протестировать его, запустив sudo ./run. Если вы работаете в Debian или Ubuntu, вместо того, чтобы устанавливать runit из исходного кода, проще всего просто apt-get install runit
и создайте каталог /etc/sv/node-service
вместо того /service/node-service
, а затем символическая ссылка /etc/sv/node-service
к /etc/service/node-service
. Кроме того, если вы хотите, чтобы ваша служба запускалась в контексте другого пользователя, кроме кого-либо, вы должны изменить -u<username>
параметр, чтобы отразить это.
Взгляни на навсегда.