У меня есть простой 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, освобождает, и эта ошибка прибывает, когда я выполняю простой сервер Python также.
Как делает выполнение сервиса с sudo префиксом, отличаются от выполнения его как пользователь root?
Это зависит от конфигурации, но кажется, что переменная локального окружения для JAVA_HOME используется пользователем. Вы можете проверить это, проверив настройки env_keep в файле /etc/sudoers. Я бы лично
использовал исходный файл /etc/profile как часть вашего скрипта upstart.