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



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

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

我对这里的主管和暴发户太过分了,所以我怀疑这就是问题所在。此外,如果我开始使用 upstart,我可以手动启动我的其他服务器(通过执行类似 node myServer.js 的操作)而不会遇到麻烦。

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

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

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


编辑:会议文件

/

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

> Countly 在运行安装脚本后将下面的块附加到新贵配置中(此处)。

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

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

最新更新