Linux後臺進程管理利器:supervisor

Linux的後臺進程運行有好幾種方法,例如nohup,screen等,可是,若是是一個服務程序,要可靠地在後臺運行,咱們就須要把它作成daemon,最好還能監控進程狀態,在乎外結束時能自動重啓。sql

supervisor就是用Python開發的一套通用的進程管理程序,能將一個普通的命令行進程變爲後臺daemon,並監控進程狀態,異常退出時能自動重啓。shell

安裝supervisor

Debian / Ubuntu能夠直接經過apt安裝:ruby

# apt-get install supervisor 

而後,給咱們本身開發的應用程序編寫一個配置文件,讓supervisor來管理它。每一個進程的配置文件均可以單獨分拆,放在/etc/supervisor/conf.d/目錄下,以.conf做爲擴展名,例如,app.conf定義了一個gunicorn的進程:app

[program:app] command=/usr/bin/gunicorn -w 1 wsgiapp:application directory=/srv/www user=www-data 

其中,進程app定義在[program:app]中,command是命令,directory是進程的當前目錄,user是進程運行的用戶身份。ui

重啓supervisor,讓配置文件生效,而後運行命令supervisorctl啓動進程:spa

# supervisorctl start app 

中止進程:命令行

# supervisorctl stop app 

若是要在命令行中使用變量,就須要本身先編寫一個shell腳本:code

#!/bin/sh /usr/bin/gunicorn -w `grep -c ^processor /proc/cpuinfo` wsgiapp:application 

而後,加上x權限,再把command指向該shell腳本便可。進程

相關文章
相關標籤/搜索