9

我正在尝试使用 supervisord 将节点应用程序作为服务运行。

如果我去 /opt/uptime 并运行:

node app.js

我的应用程序在前台启动。我一按 ctrl+c 它就死了..正如预期的那样。

我已经安装了主管并将其添加到配置中:

[program:uptime]
command=/usr/local/bin/node app.js
directory=/opt/uptime/

我可以成功启动主管,但如果我做 supervisorctl status 我得到:

uptime         BACKOFF    Exited too quickly (process log may have details)

以下是日志文件:

/var/log/supervisor/supervisord.log

2013-04-25 09:37:10,854 CRIT Supervisor running as root (no user in config file)
2013-04-25 09:37:10,866 INFO /var/tmp/supervisor.sock:Medusa (V1.1.1.1) started at Thu Apr 25 09:37:10 2013
Hostname: <unix domain socket>
Port:/var/tmp/supervisor.sock
2013-04-25 09:37:10,914 CRIT Running without any HTTP authentication checking
2013-04-25 09:37:10,915 INFO daemonizing the process
2013-04-25 09:37:10,917 INFO supervisord started with pid 28099
2013-04-25 09:37:10,918 INFO spawned: 'uptime' with pid 28101
2013-04-25 09:37:11,015 INFO exited: uptime (exit status 1; not expected)
2013-04-25 09:37:11,016 INFO received SIGCLD indicating a child quit
2013-04-25 09:37:12,019 INFO spawned: 'uptime' with pid 28103
2013-04-25 09:37:12,082 INFO exited: uptime (exit status 1; not expected)
2013-04-25 09:37:12,082 INFO received SIGCLD indicating a child quit
2013-04-25 09:37:14,086 INFO spawned: 'uptime' with pid 28105
2013-04-25 09:37:14,153 INFO exited: uptime (exit status 1; not expected)
2013-04-25 09:37:14,154 INFO received SIGCLD indicating a child quit
2013-04-25 09:37:17,157 INFO spawned: 'uptime' with pid 28107
2013-04-25 09:37:17,220 INFO exited: uptime (exit status 1; not expected)
2013-04-25 09:37:17,220 INFO received SIGCLD indicating a child quit
2013-04-25 09:37:18,221 INFO gave up: uptime entered FATAL state, too many start retries too quickly
2013-04-25 09:37:20,372 INFO localhost:0 - - [25/Apr/2013:14:37:20 -0600] "POST /RPC2 HTTP/1.0" 200 254
2013-04-25 09:37:20,374 INFO localhost:0 - - [25/Apr/2013:14:37:20 -0600] "POST /RPC2 HTTP/1.0" 200 1236
4

1 回答 1

5

如果我理解正确,代码应如下所示:

如果目录 = /usr/local/bin/ :

[program:uptime]
directory = /usr/local/bin/
command = node app.js

如果目录 = /opt/uptime/ :

[program:uptime]
directory = /opt/uptime/
command = node app.js
于 2015-05-26T11:55:34.323 回答