supervisor使用指南
生活随笔
收集整理的這篇文章主要介紹了
supervisor使用指南
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
- 安裝和配置
- 常用命令介紹
- 關閉supervisor
安裝和配置
直接使用pip安裝即可
sudo pip install supervisor安裝完成后,選擇一個常用目錄(用于存放supervisor配置信息和輸出日志),此目錄在下文中用<sv_path>表示,執行:
# 在該目錄下生成配置文件'my.conf' cd <sv_path> echo_supervisord_conf > ./my.conf在<sv_path>下創建兩個文件夾,分別為supervisor和log(此名稱隨便起),前者用于存放supervisor.sock和supervisor.pid,后者用于存放進程的日志:
cd <sv_path> mkdir supervisor mkdir log然后,使用vim打開my.conf文件(該文件中,分號是注釋,為了簡潔,就不展示注釋掉的語句了),進行修改:
[unix_http_server] ; 這里修改為前面建立的路徑 file=<sv_path>/supervisor/supervisor.sock ; the path to the socket file[inet_http_server] ; inet (TCP) server disabled by default port=127.0.0.1:9001 ; ip_address:port specifier, *:port for all iface[supervisord] ; 這里修改為前面建立的路徑 logfile=<sv_path>/log/supervisord.log ; main log file; default $CWD/supervisord.log logfile_maxbytes=50MB ; max main logfile bytes b4 rotation; default 50MB logfile_backups=10 ; # of main logfile backups; 0 means none, default 10 loglevel=info ; log level; default info; others: debug,warn,trace ; 這里修改為前面建立的路徑 pidfile=<sv_path>/supervisor/supervisord.pid ; supervisord pidfile; default supervisord.pid nodaemon=false ; start in foreground if true; default false silent=false ; no logs to stdout if true; default false minfds=1024 ; min. avail startup file descriptors; default 1024 minprocs=200 ; min. avail process descriptors;default 200[rpcinterface:supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface[supervisorctl] ; 這里修改為前面建立的路徑 serverurl=unix://<sv_path>/supervisor/supervisor.sock ; use a unix:// URL for a unix socket接下來,在my.conf文件中,配置需要守護的進程:
; program后面的auto_connect是進程名稱,可自定義 [program:auto_connect] command=python xxx.py ; the program (relative uses PATH, can take args) directory=<your_code_path> ; directory to cwd to before exec (def no cwd) autostart=true ; start at supervisord start (default: true) startretries=99999 ; max # of serial start failures when starting (default 3) redirect_stderr=true ; redirect proc stderr to stdout (default false) stdout_logfile=<sv_path>/log/auto_connect.log ; stdout log path, NONE for none; default AUTO[program:natapp] ; 注意,這種不在PATH里的命令,要使用絕對路徑 command=<your_natapp_command_path>/natapp autostart=true startretries=99999 redirect_stderr=true stdout_logfile=<sv_path>//log/natapp.log[program:frp] command=<your_frp_command_path>/frpc -c <your_frp_ini_path>/frpc.ini autostart=true startretries=99999 redirect_stderr=true stdout_logfile=<sv_path>/log/frp.log接下來,啟動supervisor即可:
# 這里的my.conf建議使用絕對路徑 supervisord -c <sv_path>/my.conf常用命令介紹
- supervisorctl update
假如改動了my.conf,執行此命令后,會將有改動的進程重啟,無改動的進程無影響 - supervisorctl reload
假如改動了my.conf,執行此命令后,所有進程都將重啟 - supervisorctl status
查看所有守護進程的運行狀態 - supervisorctl start program_name
啟動名為program_name的進程 - supervisorctl restart program_name
重啟名為program_name的進程 - supervisorctl stop program_name
關閉名為program_name的進程 - supervisorctl stop all
關閉全部進程
關閉supervisor
# 通過ps命令找到之前運行的supervisor的pid,假設為sv_pid ps -ef | grep supervisor kill -s 9 sv_pid # 執行unlink命令,否則再次啟動supervisor時會報錯 unlink <sv_path>/supervisor/supervisor.sock總結
以上是生活随笔為你收集整理的supervisor使用指南的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 20201014 《计算感知》第2节课
- 下一篇: 20201021 《计算感知》第3节课