2016-07-25 58 views
2

我有以下supervisord配置(從this answer複製):我可以使用systemd運行多個進程(每個進程使用不同的端口)嗎?

[program:myprogram] 
process_name=MYPROGRAM%(process_num)s 
directory=/var/www/apps/myapp 
command=/var/www/apps/myapp/virtualenv/bin/python index.py --PORT=%(process_num)s 
startsecs=2 
user=youruser 
stdout_logfile=/var/log/myapp/out-%(process_num)s.log 
stderr_logfile=/var/log/myapp/err-%(process_num)s.log 
numprocs=4 
numprocs_start=14000 

我可以用systemd同樣的事情?

回答

4

系統單元可以包括specifiers,其可以用於編寫將被實例化幾次的通用單元服務。

例如基於您supervisord配置:/etc/systemd/system/[email protected]

[Unit] 
Description=My awesome daemon on port %i 
After=network.target 

[Service] 
User=youruser 
WorkingDirectory=/var/www/apps/myapp 
Type=simple 
ExecStart=/var/www/apps/myapp/virtualenv/bin/python index.py --PORT=%i 

[Install] 
WantedBy=multi-user.target 

然後,您可以啓用/開始通過例如使用該服務的多個實例:

# systemctl start [email protected] 

文章與Fedora的雜誌更多的例子.org:systemd: Template unit files

相關問題