Назад | Перейти на главную страницу

Как мне использовать runit для управления заказной службой node.js?

Мой сервис очень простой, просто 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> параметр, чтобы отразить это.

Взгляни на навсегда.