upstart脚本运行得很好,但是以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库,这个错误来了,当我运行一个简单的python服务器以及。

如何使用sudo前缀运行服务与以root用户运行服务不同?

这取决于您的configuration,但看起来您的用户正在使用JAVA_HOME的本地环境variables。 你可以通过检查/ etc / sudoers中的env_keep设置来validation。

我个人将source /etc/profile作为你的新贵脚本的一部分。