【问题标题】:UPSTART script non root not workingUPSTART 脚本非 root 不起作用
【发布时间】:2014-10-27 08:15:42
【问题描述】:

我正在尝试使用 upstart 作为非 root 用户运行 nodejs 应用程序。
但不知何故,脚本的某些部分将无法运行:例如:

  1. 如果我像 root 用户一样运行它(下例)NODE_ENV 永远不会被调用/设置
  2. 调用的唯一方法是使用"sudo initctl stop pdcapp"
  3. sudo nameofApp start|stop 不起作用
  4. 调用sudo initctl stop nameofApp 时,停止前脚本不会回显到日志文件
  5. 如果我尝试像非 root 用户一样运行它,它甚至都不会启动

这不是一种更简洁更简单的方法(systemd)我查看了各种教程,显然这就是他们的做法。那么我在这里错过了什么?

这是/etc/init/下的.conf文件

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

【问题讨论】:

    标签: linux node.js deployment upstart


    【解决方案1】:

    Red Hat 有一个超级旧的 Upstart 版本,它可能充满了错误,因为尽管使用了 Upstart,但他们从未为 Upstart 做出过贡献(Fedora 在 RHEL 6 发布后立即切换到 systemd,甚至在他们真正尝试好之前)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-26
      • 2021-04-20
      • 2018-10-08
      • 2014-07-17
      相关资源
      最近更新 更多