2016-04-29 55 views
0

我一直在調查Supervisor用於我的項目。主管用一個命令啓動更多進程

documentation它聲明可以用一個命令啓動多個進程。如果numprocess設置爲多於一個,則配置爲使其program:process_name表示「同質過程組」。

如果我在下面的例子中將numprocess設置爲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 

如何將其配置爲從不同目錄啓動不同的進程?

例如我想在主管中用一個命令啓動mongo和nodejs。

回答

0

您需要兩個配置文件,一個用於MongoDB,一個用於Node。 將它們放到/etc/supervisor/conf.d,叫他們mongo.confnode.conf像這樣的東西:

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 

當然ÿ你需要調整每個環境的價值。

然後,你將能夠通過supervisorctl命令來控制它們或service supervisor restart

例重啓一切:supervisorctl restart node-app