【发布时间】:2012-09-26 21:34:02
【问题描述】:
我的 CentOS 服务器的 /etc/init/ 目录中的 .conf 文件中有以下内容:
#!upstart
description "shortnr server for fmc.io"
author "Felix Milea-Ciobanu"
start on startup
stop on shutdown
respawn
respawn limit 10 30
script
export HOME="/root"
exec /usr/local/bin/node /var/www/fmc.io/nodejs/app.js >> /var/www/fmc.io/logs/shortnr.upstart.log 2>&1
end script
pre-start script
echo "[`date -u +%Y-%m-%dT%T.%3NZ`] (sys) Starting" >> /var/www/fmc.io/logs/shortnr.upstart.log
end script
pre-stop script
echo "[`date -u +%Y-%m-%dT%T.%3NZ`] (sys) Stopping" >> /var/www/fmc.io/logs/shortnr.upstart.log
end script
这是一个非常简单直接的暴发户脚本。我将这个服务命名为shortnr,在脚本启动的nodejs软件之后。
如果我在命令行输入start shortnr,我会得到类似于shortnr start/running, process 28350 的内容。
但是,我似乎无法访问 nodejs 服务器;如果我在命令 shell 中执行 ps aux | grep shortnr,则什么也不会出现。
如果我在运行启动后执行stop shortnr,我会得到stop: Unknown instance:,这意味着原始服务从未启动。
我在 Upstart 脚本中设置的日志文件如下所示:
[2012-10-05T17:00:17.174Z] (sys) Starting
[2012-10-05T17:00:17.181Z] (sys) Starting
[2012-10-05T17:00:17.190Z] (sys) Starting
[2012-10-05T17:00:17.197Z] (sys) Starting
[2012-10-05T17:00:17.204Z] (sys) Starting
基本上,当我发出启动命令时,该脚本每秒尝试启动多次,这意味着服务必须在启动时崩溃或尝试重生?
但是,如果我将 exec 之后的命令复制并粘贴到 shell 提示符中,nodejs 脚本就会启动并正常运行。
这意味着我的 Upstart 脚本一定有问题。
如果我尝试使用 initctl 命令启动/停止服务,我会得到相同的结果。
我正在运行 CentOS 6.3 和 Upstart 0.6.5
有人知道是什么原因造成的,或者如何修复我的脚本吗?
【问题讨论】:
标签: node.js centos daemon upstart