mysql用supervisor管理_使用Supervisor管理进程
1.? Superivisor簡介:
Supervisor是一個C/S系統,它允許用戶在類UNIX系統上監控和管理一系列的進程。你可以把一個進程以Daemon的形式用Supervisor來管理。
2.? 安裝:
使用pip來安裝Supervisor:[root@test1?~]#?pip?install?supervisor
如果CentOS系統中沒用安裝pip,可以通過如下命令安裝pip:[root@test1?~]#?yum?-y?install?python-pip
3.? 配置文件:
Supervisor的配置文件需要手動執行命令來生成,如下:[root@test1?~]#?echo_supervisord_conf?>?/etc/supervisord.conf
4.? 常用的配置項:command=/bin/cat?????????????????----?啟動程序時執行的命令;
directory=/tmp???????????????????----?執行目錄,若有/home/test/test1.py,將directory設置成/home/test,則command只需設置成python?test1.py。否則command必須設置成絕對路徑;
process_name=%(program_name)s?????----?進程啟動,使用program?name作為進程名,默認值;
autostart=true???????????????????----?隨Supervisor啟動一起啟動;
startsecs=1??????????????????????----?等待多長時間后認為程序啟動成功,默認為1;
startretries=3???????????????????----?啟動失敗時的重試次數,默認為3;
user=root????????????????????????----?以root身份運行程序;
priority=999?????????????????????----?優先級。值越高,最后啟動,最先被關閉,默認值999。
5.? 命令:
Supervisor有兩個可執行程序 :supervisord 和 supervisorctl。
supervisord用來依據配置文件的策略管理后臺守護進程;
supervisorctl管理員用于向后臺守護進程發送“啟動/重啟/停止”等指令。
6.? 一個例子,使用Supervisor管理一個Python Flask程序hello.py:[program:flasky]
directory=/opt/flasky/
command=/opt/flasky/venv/bin/python?hello.py?runserver?--host?192.168.1.101?-p?8080
autostart=true
startsecs=10
startretries=2
user=root
stderr_logfile=/tmp/flasky-error.log
stdout_logfile=/tmp/flasky-error.log
7.? 啟動Supervisord:[root@test1?~]#?/usr/bin/supervisord?-c?/etc/supervisord.conf
8.? 查看進程狀態:[root@test1?~]#?/usr/bin/supervisorctl?status
flasky???????????????????????????STARTING
[root@test1?~]#?/usr/bin/supervisorctl?status
flasky???????????????????????????RUNNING???pid?46778,?uptime?0:00:10
[root@test1?~]#?/usr/bin/supervisorctl?status
flasky???????????????????????????RUNNING???pid?46778,?uptime?0:00:13
9.? Supervisorctl管理命令:supervisorctl?status????????????????----?查看supervisor管理進程的狀態;
supervisorctl?stop?programname??????----?用來關閉某個進程,programname指上例中的flasky;
supervisorctl?start?programname?????----?用來啟動某個進程;
supervisorctl?restart?programname???----?用來重啟某個進程;
supervisorctl?stop?all??????????????----?關閉所有的進程;
supervisorctl?reload????????????????----?停止所有進程,載入最新的配置文件,并根據最新的配置啟動、管理進程;
supervisorctl?update????????????????----?根據最新的配置文件,啟動新配置的進程或重啟配置有變化的進程,沒有改動過的進程不會受到影響;
supervisorctl?shutdown??????????????----?關閉supervisor服務。
10、執行supervisorctl時異常:error:?,?:?file:
這時可以在執行supervisorctl時通過-c選項指定配置文件的位置:[root@test1?~]#?/usr/bin/supervisorctl?-c?/etc/supervisord.conf?status
曾經有一次面試,面試官提問:“有一個腳本,如何讓它在開機之后一小時的時候開始執行?”
我答:“在腳本開頭加上‘sleep 3600’,再把腳本加入rc.d目錄開機啟動。”
其實,用Supervisor就可以更合理地實現。
總結
以上是生活随笔為你收集整理的mysql用supervisor管理_使用Supervisor管理进程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql数据库入门第二张试卷_2016
- 下一篇: java链接mysql出问题_java连