Ubuntu-12.04

從新貴執行 node.js (ubuntu 12.04)

  • June 18, 2014

我正在嘗試設置 upstart 腳本來啟動/停止我的 node.js 應用程序。

這是我的新貴腳本:

#!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

我做錯了什麼?;)

嘗試將 noderg.conf 移動到/etc/init,而不是 /etc/init.d。Init.d 是 SYSV 風格的腳本所在,upstart 配置屬於前者。

用於initctl list在您移動文件後驗證它是否顯示為新貴服務。

如果沒有,您可以使用initctl reload-configuration並重試。

引用自:https://serverfault.com/questions/606167