我有一个简单的 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 的本地环境变量似乎正在从您的用户使用。您可以通过检查 /etc/sudoers 中的 env_keep 设置来验证这一点。
我个人会
source /etc/profile
作为你新贵脚本的一部分。