我有一个简单的 nodeJs upstart 服务运行,
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 用户身份运行服务有何不同?
答案1
这取决于您的配置,但看起来您的 JAVA_HOME 本地环境变量正在被使用来自您的用户。您可以通过检查 /etc/sudoers 中的 env_keep 设置来验证这一点。
我个人会将其source /etc/profile
作为你的新贵脚本的一部分。