Почему два моих сервера node.js исключают друг друга?

На моем сервере ubuntu у меня есть два сервера node.js, которые служат для разных целей. Доступ к ним осуществляется через разные порты, и они прекрасно работают отдельно друг от друга. Проблема в том, что если один из них работает, то другой не запускается выскочкой. Какое бы приложение ни пришло первым, запускается нормально с использованием sudo start app1, но для второго приложения (sudo start app2) я получаю успешный ответ, но процесса нет, и попытка остановить его с помощью выскочки дает stop:Unknown job: app2

Оба используют выскочку и супервизор для запуска при загрузке и продолжения работы. Файлы конфигурации для одного из приложений (Countly) можно найти здесь . Файлы конфигурации для другого приложения очень похожи (я скопировал и изменил файлы countly).

Я далеко не в себе с руководителем и выскочкой, так что подозреваю, что проблема именно в этом. Вдобавок, если я начну постоянно использовать выскочку, я могу вручную запустить другой сервер (выполнив что-то вроде 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

edit2: файлы журнала

/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

person 7yl4r    schedule 19.09.2013    source источник


Ответы (1)


Countly добавляет блок ниже в конфигурацию выскочки после запуска сценария установки (здесь).

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

Я думаю, вам не хватает этой части в вашей собственной конфигурации выскочки.

person osoner    schedule 20.09.2013
comment
верно! Я видел это в сценарии установки, но, возможно, я совсем забыл об этом, когда настраивал свой собственный. Я попробую. - person 7yl4r; 20.09.2013
comment
О, в конце концов, я этого не забыл. У меня есть вот это, но немного изменилось: exec /usr/bin/supervisord --nodaemon --configuration /home/username/myAppDir/config/supervisord.conf - person 7yl4r; 20.09.2013
comment
Я добавил в вопрос содержимое моих файлов конфигурации. Спасибо за вашу помощь и вашу работу над Countly (это здорово). Сегодня я буду читать о supervisord, чтобы узнать, не делаю ли я что-то не так. - person 7yl4r; 20.09.2013
comment
Есть ли что-нибудь в /var/log/supervisord.log после выполнения sudo start myApplication? - person osoner; 20.09.2013
comment
ничего не добавляется, нет. У меня есть некоторые ошибки, сделанные давным-давно, но это все. Я добавил несколько последних записей в мои файлы журналов на вопрос, хотите ли вы взглянуть. Я уверен, что это просто глупая ошибка, так как я не знаком с этими инструментами. - person 7yl4r; 21.09.2013