Используя запуск для запуска приложения узла на запуске

У меня есть проблема с node_module-путем. Кто-то может сообщить мне то, что я делаю неправильно?

Выполнение

exec sudo -u www-data /usr/bin/node /etc/node/app.js

дает мне

Error: Cannot find module 'connect'

У меня есть эта конфигурация (/etc/init/applicationserver.conf):

start on started mountall
stop on shutdown

respawn
respawn limit 99 5

script
    export HOME="/"
    export NODE_PATH="/usr/lib/node_modules"

    exec sudo -u www-data /usr/bin/node /etc/node/app.js >> /var/log/applicationserver.log 2>&1
end script

post-start script

end script

Кажется, что это не может найти модули установленными. Я проверил, что подключение находится под/usr/lib/node_modules и если я экспортирую NODE_PATH из корня или моей учетной записи, это хорошо работает.

2
задан 20 November 2011 в 20:43

1 ответ

Хм, не лучший способ запустить что-то в целом. Сценарий обертки с корректным владением мог сделать ту же работу без sudo.

Вы - проблема, находится в употреблении sudo, независимо от контекста как новомодное задание. Экологический Вар, который Вы определяете, не передается. Добавьте, что '-E' переключаются на sudo для исправления этого.

При использовании обертки, принадлежавшей www-данным для запуска того процесса, у Вас не было бы этой проблемы, потому что Вам не был бы нужен sudo. Существует много заданий в качестве примера, которые создают Вар и передают их на новый дочерний процесс. Это - основное свойство ветвления/клона.

1
ответ дан 2 December 2019 в 05:42

Другие вопросы по тегам:

Похожие вопросы: