У меня есть простая служба выскочки nodeJs, запущенная как,
script
exec /usr/bin/node /path/to/server.js
end script
При запуске с командой sudo он работает
~$ sudo service upserv start
sg_gui_server start/running, process 19321
Когда он запускается от имени пользователя root, он дает странную ошибку.
~$ sudo su
sk# service sg_gui_server restart
karaf: JAVA_HOME not set; results may vary
JAVA_HOME не установлен, эта ошибка странная, поскольку nodeJs не зависит от java libs, и эта ошибка возникает, когда я также запускаю простой сервер python.
Чем запуск службы с префиксом sudo отличается от запуска ее от имени пользователя root?
Это зависит от вашей конфигурации, но похоже, что используется ваша локальная переменная среды для JAVA_HOME. от вашего пользователя. Вы можете убедиться в этом, проверив настройки env_keep в / etc / sudoers.
Я бы лично source /etc/profile
как часть вашего сценария выскочки.