2016-04-29 5 views
0

私のプロジェクトで使用するためにSupervisorを調査しました。スーパーバイザは1つのコマンドでさらに多くのプロセスを開始します

documentationには、1つのコマンドで複数のプロセスを開始することが可能であると記載されています。 numprocessが複数に設定されている場合、program:process_nameが「均質プロセスグループ」を表すような構成を持つ。

下の例でnumprocessを2に設定すると、スーパーバイザは同じプロセスを2回起動しようとします。右?

[program:cat] 
command=/bin/cat 
process_name=%(program_name)s 
numprocs=1 
directory=/tmp 
umask=022 
priority=999 
autostart=true 
autorestart=unexpected 
startsecs=10 
startretries=3 
exitcodes=0,2 
stopsignal=TERM 
stopwaitsecs=10 
stopasgroup=false 
killasgroup=false 
user=chrism 
redirect_stderr=false 
stdout_logfile=/a/path 
stdout_logfile_maxbytes=1MB 
stdout_logfile_backups=10 
stdout_capture_maxbytes=1MB 
stdout_events_enabled=false 
stderr_logfile=/a/path 
stderr_logfile_maxbytes=1MB 
stderr_logfile_backups=10 
stderr_capture_maxbytes=1MB 
stderr_events_enabled=false 
environment=A="1",B="2" 
serverurl=AUTO 

異なるディレクトリから異なるプロセスを開始するように設定するにはどうすればよいですか?

たとえば、スーパーバイザで1つのコマンドでmongoとnodejの両方を開始したいとします。

答えて

0

MongoDB用とNode用の2つの設定ファイルが必要です。もちろん

node.conf

[program:node-app] 
numprocs=1 
directory=/your/app/directory 
command=/usr/bin/node server/server.js 
autostart=true 
autorestart=true 
environment=NODE_ENV=production 
stderr_logfile=/var/log/supervisor/somelog.err.log 
stdout_logfile=/var/log/supervisor/somelog.out.log 
user=<youruser> 

mongo.conf

[program:mongod] 
command=/usr/bin/mongod --port 27017 --quiet --logpath /var/log/mongodb/mongod.log --logappend 
autostart=true 
user=root 
startsecs=3 
redirect_stderr=true 
stdout_logfile=/var/log/mongod.log 

/etc/supervisor/conf.dに 置き、それらを、このようなものでmongo.confnode.confそれらを呼び出しますy環境ごとの値を調整する必要があります。その後

あなたはsupervisorctlコマンドを経由して、それらを制御するかservice supervisor restart

例で、すべてを再起動することができるようになります。supervisorctl restart node-app

関連する問題