从 upstart 运行 node.js(ubuntu 12.04)

从 upstart 运行 node.js(ubuntu 12.04)

我正在尝试设置 upstart 脚本来启动/停止我的 node.js 应用程序。

这是我的 upstart 脚本:

#!upstart

description "node.js server"
author "marduk"

start on filesystem
stop on runlevel [!2345]
oom never
expect daemon
respawn
respawn limit 10 60

script
        export HOME="/home/domains/srg-internal-dev"

        echo $$ > /var/run/node-srg-internal-dev.pid
        exec sudo -u www-data /usr/bin/node /home/domains/srg-internal-dev/api/server.js >> /home/domains/srg-internal-dev/node.log
2>&1
end script

pre-start script
        echo "[`date -u +%Y-%m-%dT%T.%3NZ`] (sys) Starting" >> /home/domains/srg-internal-dev/node.log
end script

pre-stop script
        rm /var/run/node-srg-internal-dev.pid
        echo "[`date -u +%Y-%m-%dT%T.%3NZ`] (sys) Stopping" >> /home/domains/srg-internal-dev/node.log
end script

我检查了这个脚本文件:

$ init-checkconf /etc/init.d/nodesrg.conf

文件 /etc/init.d/nodesrg.conf: 语法正确

但是当我尝试启动节点时,我得到:

$ start nodesrg
start: Unknown job: nodesrg

我做错了什么?;)

答案1

尝试将 nodesrg.conf 移至/etc/init,而不是 /etc/init.d。Init.d 是 SYSV 样式脚本所在的位置,upstart 配置属于前者。

用于initctl list验证移动文件后它是否显示为 upstart 服务。

如果没有,您可以使用initctl reload-configuration并重试。

相关内容