На моем сервере 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