Linux後台進程管理利器:supervisor Linux的後台進程運行有好幾種方法,例如nohup,screen等,但是,如果是一個服務程式,要可靠地在後台運行,我們就需要把它做成daemon,最好還能監控進程狀態,在意外結束時能自動重啟。 supervisor就是用Python開發的一套通用的進程管理程式,能將一個普通的命令列進程變為後台daemon,並監控進程狀態,異常退出時能自動重啟。 安裝supervisorDebian / Ubuntu可以直接通過apt安裝: [html] #apt-get install supervisor 然後,給我們自己開發的應用程式編寫一個設定檔,讓supervisor來管理它。每個進程的設定檔都可以單獨分拆,放在/etc/supervisor/conf.d/目錄下,以.conf作為副檔名,例如,app.conf定義了一個gunicorn的進程: [html] [program:app] command=/usr/bin/gunicorn -w 1 wsgiapp:application directory=/srv/www user=www-data 其中,進程app定義在[program:app]中,command是命令,directory是進程的目前的目錄,user是進程啟動並執行使用者身份。 重啟supervisor,讓設定檔生效,然後運行命令supervisorctl啟動進程: [html] # supervisorctl start app 停止進程: [html] # supervisorctl stop app 如果要在命令列中使用變數,就需要自己先編寫一個shell指令碼: [html] #!/bin/sh /usr/bin/gunicorn -w `grep -c ^processor /proc/cpuinfo` wsgiapp:application 然後,加上x許可權,再把command指向該shell指令碼即可。