为什么我的两个node.js服务器是互斥的?

时间:2013-09-19 23:43:06

标签: node.js supervisord upstart

在我的ubuntu服务器上,我有两个node.js服务器,用于不同的目的。它们可以在不同的端口上访问,并且可以彼此分开工作。问题是,如果其中一个正在运行,另一个不是由upstart启动的。无论哪个应用程序首先使用sudo start app1都可以正常启动,但是对于第二个应用程序(sudo start app2),我得到了一个成功的响应,但是该进程不存在,并尝试使用新手级别{{1}来阻止它}

两者都使用upstart和supervisord来启动并保持运行。其中一个应用程序(Countly)can be found here的配置文件。其他应用程序的配置文件非常相似(我复制并修改了它)。

我在这里与监督和暴发户在一起,所以我怀疑这就是问题所在。另外,如果我开始使用upstart,我可以手动启动我的其他服务器(通过像stop:Unknown job: app2这样做)没有问题。

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

我无法理解日志,但我看不到任何与之相关的内容。

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


编辑:conf文件

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

node myServer.js

和/home/username/my-app-dir/config/supervisord.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

edit2:日志文件

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

[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

/var/log/supervisor/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

1 个答案:

答案 0 :(得分:1)

在运行安装脚本(here)后,计数地在块下方附加到upstart配置。

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

我认为你从自己的暴发配置中遗漏了这部分。