我编写了这个 upstart 脚本,用于启动 Node.js 服务。但是突然间服务停止了,upstart 无法重新启动它。现在我尝试手动启动它,但它无法识别我的服务:
start: Unknown job: queue
该脚本已正确放置在中/etc/init
,并且应具有正确的权限:
-rw-r--r-- 1 root root 200 Aug 7 13:30 queue.conf
然而,当我检查配置文件时init-checkconf
,它说无法以 root 身份运行:
root@production1:~# init-checkconf /etc/init/queue.conf
ERROR: cannot run as root
什么原因导致了此错误?我该如何解决?
调试信息:
Ubuntu 12.04.3 LTS
root@production1:~# service --version
service ver. 0.91-ubuntu1
编辑
这里是queue.conf
:
description "Echo.it command queue"
author "Ronni Egeriis Persson <[email protected]>"
stop on shutdown
respawn
respawn 20 5
exec sudo -u beanstalk /usr/bin/node /var/www/queue/index.js >> /var/log/queue.log 2>&1
sudo -u beanstalk /usr/bin/node /var/www/queue/index.js >> /var/log/queue.log 2>&1
手动运行时该命令运行良好。
答案1
无法按原样运行root
。init-checkconf
以init-checkconf
另一个用户身份运行会将语法验证输出到 中的文件中/tmp
。
在这种情况下respawn 20 5
应该是respawn limit 20 5
。