【Linux】後臺進程管理

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

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

安裝supervisor

Debian / Ubuntu可以直接通過apt安裝:

# apt-get install supervisor

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

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

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

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

# supervisorctl start app

停止進程:

# supervisorctl stop app

如果要在命令行中使用變量,就需要自己先編寫一個shell腳本:

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

然後,加上x權限,再把command指向該shell腳本即可。

supervisor還有許多選項,默認的autorestart爲unexpected(異常退出)。詳細參考:http://supervisord.org/

以上內容參考了:https://www.liaoxuefeng.com/article/0013738926914703df5e93589a14c19807f0e285194fe84000
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章