У меня есть проблема с 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 из корня или моей учетной записи, это хорошо работает.
Хм, не лучший способ запустить что-то в целом. Сценарий обертки с корректным владением мог сделать ту же работу без sudo.
Вы - проблема, находится в употреблении sudo, независимо от контекста как новомодное задание. Экологический Вар, который Вы определяете, не передается. Добавьте, что '-E' переключаются на sudo для исправления этого.
При использовании обертки, принадлежавшей www-данным для запуска того процесса, у Вас не было бы этой проблемы, потому что Вам не был бы нужен sudo. Существует много заданий в качестве примера, которые создают Вар и передают их на новый дочерний процесс. Это - основное свойство ветвления/клона.