我的 Node.js 服务器 upstart 作业配置:
start on (net-device-up and runlevel [2345] and started td-agent)
stop on runlevel [016]
respawn
env HOME="/var/nodes"
script
chdir $HOME
exec /usr/local/bin/node index.js -c app/config/live >> /var/log/node/server.log 2>> /var/log/node/server_error.log
end script
当我跑步时:
initctl check-config node
我懂了:
node
start on: unknown job td-agent
当服务器启动时,节点已关闭,但我可以手动启动它:
service node start
node start/running, process 1156
编辑:如果我删除and started td-agent
,它会在启动时启动。但是我需要在 td-agent 之后启动 Node。我该如何解决这个问题?
暴发户似乎对
td-agent
. 那是因为 upstart 只识别由 upstart 开始的工作。可能
td-agent
是由/etc/init.d
. 如果是这样,你就不能使用 upstart 来启动node
并让它依赖于td-agent
.解决方案是不要使用暴发户。您需要为
/etc/init.d
starts编写一个新脚本node
。您必须使其在
td-agent
启动脚本后运行。当你有你的脚本时,使用update-rc.d
命令来定义它何时开始。这是一个示例最小启动脚本的链接。它适用于 liferay,但只需修复环境变量,并用您自己的定义替换 start() 和 stop() 函数。 示例 liferay initd 脚本。