#node.js #debian #init.d
#node.js #debian #init.d
Вопрос:
У меня есть небольшое узловое приложение на сервере (node mailer), которое я запускаю, перейдя в его исходную папку и выполнив npm start. Я подумал, что лучший способ запустить это автоматически — создать my_script.sh файл и поместите его в каталог init.d моего ящика debian. Внутри файла (под строкой !#/bin/bash) код для выполнения
'/opt/mycode/source/npm start'
Я сохраняю строку в файле .sh и перезапускаю компьютер, но пока он не работает. Мой вопрос: это вообще то, как вы запускаете подобный скрипт (используя эту команду и файл .sh)? Он запускается нормально, когда я делаю это вручную (когда я перехожу к нему и запускаю npm start в терминале). Я заключил его в одинарные кавычки из-за пробела между запуском npm. Кроме того, если я хочу убедиться, что это сработало, какой процесс я должен искать, кроме простого пинга моей почтовой программы smtp? Наконец, я знаю, что мне нужно запустить:
update-rc.d my_script.sh defaults
но я также был смущен тем, правильно ли я это сделал (это просто имя файла, который туда идет, или файл плюс расширение)?
Ответ №1:
Скрипт, который вы оставляете в папке init.d, не должен иметь никакого расширения и должен иметь функции для запуска, остановки и получения статуса службы (вашего приложения).
Я оставлю ссылку с примером, а также с некоторой основой для создания сценария службы Linux.
Я бы предложил перезагрузить демон с systemctl daemon-reload
помощью, чтобы обновить служебные файлы Linux после добавления нового.