1.安裝supervisor
# 如果提示沒有可用軟件包就執(zhí)行 sudo yum -y install epel-release
sudo yum install supervisor
2.編輯配置文件
# 先備份
cp /etc/supervisord.conf /etc/supervisord.conf_bak
# 編輯
vim /etc/supervisord.conf
# command 是執(zhí)行的命令,由于python環(huán)境在虛擬環(huán)境中,需要指定完全路徑
# directory 項目目錄
# 下面是停止命令時殺死進程.如果不填寫,可能會導(dǎo)致手動停止后,啟動program錯誤
# stopasgroup=true
# stopsignal=QUIT
[program:django]
command=/home/faster/.virtualenvs/fasterenv/bin/python manage.py runserver 0.0.0.0:8000
directory=/home/faster/FasterRunner
stopasgroup=true
stopsignal=QUIT
user=faster
autostart=true
autorestart=true
stderr_logfile=/home/faster/err.log
stdout_logfile=/home/faster/out.log
3.啟動 supervisord
sudo supervisord -c /etc/supervisord.conf
4.常用命令
# 注意非root用戶,需要加上sudo
# 重啟supervisor
supervisorctl reload
# 啟動名字為django的program
supervisorctl start django
# 停止名字為django的program
supervisorctl stop django
# 查看名字為django的program 狀態(tài)
supervisorctl status django
# 查看所有program的狀態(tài)
supervisorctl status all
# 停止所有program
supervisorctl stop all
5.錯誤排查
解決unix:///tmp/supervisor.sock no such file的問題1
解決unix:///tmp/supervisor.sock no such file的問題2
Error: Another program is already listening on a port that one of our HTTP servers is configured to use. Shut this program down first before starting
解決方法:
find / -name supervisor.sock
unlink /name/supervisor.sock
unix:///var/run/supervisor.sock no such file
sudo touch /var/run/supervisor.sock
sudo chmod 777 /var/run/supervisor.sock
sudo service supervisor restart
Error: Another program is already listening on a port that one of our HTTP servers is configured to use. Shut this program down first before starting supervisord.
unlink /var/run/supervisor/supervisor.sock
6.開機啟動
- 檢查是否開機啟動
systemctl is-enabled supervisord
- 開機啟動設(shè)置
systemctl enabled supervisord