UPSTART脚本非root不能正常工作
我正尝试使用upstart作为非root用户来运行nodejs应用程序。
但不知怎的,部分脚本将不会运行:例如:
- 如果我像一个root用户运行它(下面的例子)NODE_ENV永远不会被调用/设置
- 唯一的方法来调用是
"sudo initctl stop pdcapp"
-
sudo nameofApp start|stop
不起作用 - 当调用
sudo initctl stop nameofApp
,sudo initctl stop nameofApp
前脚本不会回显到日志文件 - 如果我尝试像非root用户那样运行,它甚至不会启动
是不是一个更简单的方法做这个(systemd)我已经看了各种教程,显然这是他们如何完成。 所以我在这里错过了什么?
这是/ etc / init /
env FULL_PATH="/srv/pd/sept011100/dev" env NODE_PATH="/usr/local/nodeJS/bin/node" env NODE_ENV=production start on filesystem or runlevel [2345] stop on [!2345] script export NODE_ENV #this variable is never set echo $$ > /var/run/PD.pid cd $FULL_PATH # the command below will not work #exec sudo -u nginx "$NODE_PATH server.js >> /var/log/PD/pdapp.log 2>&1" exec $NODE_PATH server.js >> /var/log/PD/pdapp.log 2>&1 end script pre-start script echo "[`date`] (sys) Starting" >> /var/log/PD/pdapp.log end script pre-stop script rm /var/run/pdapp.pid echo "[`date`] (sys) Stopping" >> /var/log/PDC/pdapp.log end script
在/ var / log / messages中,当我停止应用程序时,我得到了这个,否则我在日志文件中什么都没有
Sep 2 18:23:14 547610-redhat-dev2 init: pdcapp pre-stop process (6903) terminated with status 1 Sep 2 18:23:14 547610-redhat-dev2 init: pdcapp main process (6899) terminated with status 143
任何想法为什么这是行不通的我正在运行redhat 6.5
红帽拥有一个超级老版本的Upstart,它可能充满了bug,因为它们从来没有为Upstart做过贡献,尽pipe使用它(Fedora在RHEL 6发布之后立即切换到systemd,甚至还没有真正尝试过)。