Назад | Перейти на главную страницу

Сценарий Upstart хорошо работает с sudo, но не работает как пользователь root

У меня есть простая служба выскочки 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 как часть вашего сценария выскочки.