0

在我的 ubuntu 服务器上,我有两个用于不同目的的 node.js 服务器。它们在不同的端口上访问,并且彼此分开工作正常。问题是,如果其中一个正在运行,另一个不是由暴发户启动的。无论哪个应用程序首先出现都可以正常使用sudo start app1,但是对于第二个应用程序(sudo start app2),我得到了成功的响应,但是该过程不存在并试图以暴发户产量来阻止它stop:Unknown job: app2

两者都使用 upstart 和 supervisord 来启动并保持运行。可以在此处找到其中一个应用程序(Countly)的配置文件。其他应用程序的配置文件非常相似(我复制并修改了 countly 的)。

我对 supervisord 和 upstart 感到不知所措,所以我怀疑这就是问题所在。此外,如果我开始使用 upstart,我可以毫无问题地手动启动我的其他服务器(通过执行类似的操作node myServer.js)。

supervisord 可以用于这样的两个应用程序吗?

我无法理解日志,但我没有看到任何看起来相关的内容。

我完全没有想法。请指教。


编辑:conf文件

/etc/init/myApp-supervisor.conf 的内容:

description "myApplication"

start on runlevel [2345]
stop on runlevel [!2345]

respawn

exec /usr/bin/supervisord --nodaemon --configuration /home/username/my-app-dir/config/supervisord.conf

和 /home/username/my-app-dir/config/supervisord.conf:

[unix_http_server]
file=/tmp/supervisor.sock

[supervisord]
logfile=/var/log/supervisord.log
logfile_maxbytes=50MB
logfile_backups=10
loglevel=warn
pidfile=/var/log/supervisord.pid
nodaemon=false
minfds=1024
minprocs=200
user=root
childlogdir=/var/log/

[rpcinterface:supervisor]
supervisor.rpcinterface_factor = supervisor.rpcinterface:make_main_rpcinterface

[group:my-app]
programs=my-app-incoming-data, my-app-file-server

[program:my-app-incoming-data]
command=node /home/username/my-app-dir/data-accepter.js
directory=.
autorestart=true
redirect_stderr=true
stdout_logfile=/home/username/my-app-dir/log/data-accepter.log
stdout_logfile_maxbytes=500MB
stdout_logfile_backups=50
std_capture_maxbytes=1MB
stdout_events_enabled=false
loglevel=warn

[program:my-app-file-server]
command=http-server -p 8877 /home/username/my-app-dir/files
directory=.
autorestart=true
redirect_stderr=true
stdout_logfile=/home/username/my-app-dir/log/file-server.log
stdout_logfile_maxbytes=500MB
stdout_logfile_backups=50
stdout_capture_maxbytes=1MB
stdout_events_enabled=false
loglevel=warn

编辑2:日志文件

/var/log/supervisord.log - (我在这里有几个重复的错误,但从一月份开始,所以我猜它们不相关)

2013-01-30 15:01:20,288 CRIT Set uid to user 0
2013-01-30 15:01:22,399 WARN cElementTree not installed, using slower XML parser for XML-RPC
2013-01-30 15:01:22,399 CRIT Server 'unix_http_server' running without any HTTP authentication checking

/var/log/supervisor/supervisord.log -(同样,很久以前的许多重复条目可能与此问题无关)

2013-01-29 21:12:46,140 WARN received SIGTERM indicating exit request
2013-01-29 21:13:32,975 CRIT Supervisor running as root (no user in config file)
2013-01-29 21:13:33,075 INFO RPC interface 'supervisor' initialized
2013-01-29 21:13:33,075 WARN cElementTree not installed, using slower XML parser for XML-RPC
2013-01-29 21:13:33,075 CRIT Server 'unix_http_server' running without any HTTP authentication checking
2013-01-29 21:13:33,082 INFO daemonizing the supervisord process
2013-01-29 21:13:33,084 INFO supervisord started with pid 743
2013-01-29 21:24:43,500 WARN received SIGTERM indicating exit request
2013-01-30 03:04:47,566 CRIT Supervisor running as root (no user in config file)
2013-01-30 03:04:47,747 INFO RPC interface 'supervisor' initialized
4

1 回答 1

1

运行安装脚本(此处)后,Countly 将以下块附加到新贵配置。

exec /usr/bin/supervisord --nodaemon --configuration $DIR/config/supervisord.conf

我认为您在自己的新贵配置中缺少这部分。

于 2013-09-20T07:45:24.487 回答