Как мне использовать runit для управления моим заказным сервисом node.js?
Мой сервис очень простой, просто сервис HTTP. Я просто хочу, чтобы он автоматически перезагружался при выходе из-за ошибки. Я подумал, что мог бы использовать runit для этого, но похоже, что документы runit в основном говорят о том, как преобразовать весь init.d в runit. Я хочу сохранить init.d и просто использовать runit для моего единственного сервиса.
Я смотрел на эти документы.
Благодарю.
РЕДАКТИРОВАТЬ: Я думаю, что это указывает в правильном направлении, я думаю, мне просто нужно знать, как сделать услугу сейчас.
2 ответа
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>
параметр, чтобы отразить это.