Upstart 脚本使用 sudo 运行良好但以 root 用户身份运行失败

Upstart 脚本使用 sudo 运行良好但以 root 用户身份运行失败

我有一个简单的 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作为你的新贵脚本的一部分。

相关内容