重启后 Node.js 服务器未启动

重启后 Node.js 服务器未启动

我的 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

当服务器启动时,Node 处于关闭状态,但我可以手动启动它:

service node start
node start/running, process 1156

编辑:如果我删除and started td-agent,它会在启动时启动。但我需要在 td-agent 之后启动 Node。我该如何解决这个问题?

答案1

Upstart 似乎对 一无所知td-agent。这是因为 upstart 仅识别 upstart 启动的任务。

可能td-agent是由 中的脚本启动的/etc/init.d。如果是这种情况,则不能使用 upstart 来启动node 取决于td-agent...

解决方案不是使用 upstart。您需要编写一个新脚本来/etc/init.d启动node

您必须在启动脚本后使其运行td-agent。当您有脚本时,使用update-rc.d命令来定义它何时启动。

以下是一个示例最小启动脚本的链接。它适用于 liferay,但只需修复环境变量,并用您自己的定义替换 start() 和 stop() 函数。 示例 liferay initd 脚本

相关内容