标签:python supervisor 监控 进程
说白了就是个python包,官方文档,我这里系统是centos6.5 root用户
pip install supervisor
配置文件在 /etc/supervisord.conf
我这里安装之后没有发现,我先到安装目录下找找,没有在自己创建那个文件,如果启动没有找
到就在启动命令中添加配置文件路径。
supervisord 提供了一个模板文件,执行下面shell文件或者输出到文件中,改改就可以用了
echo_supervisord_conf #或者 echo_supervisord_conf > supervisord.conf不过模板文件有点太多了,我们还是按照文档写点程序来配置把,这次的目标是启动一个django开发
服务器并且让他成为一个独立进程,可以控制这个进程。
建立一个最简单的django,并可以启动
[root@localhost ~]# pip install -i http://pypi.douban.com/simple django==1.6 [root@localhost ~]# su - lzz [lzz@localhost ~]$ django-admin.py startproject lzztest [lzz@localhost ~]$ cd lzztest/ [lzz@localhost lzztest]$ python manage.py runserver 8000 #看到可以正常启动,crtl+c关闭 [lzz@localhost lzztest]$ exit #切会到root用户下
user=lzz command=/usr/bin/python /home/lzz/lzztest/manage.py runserver 8000 autostart=true autorestart=true stderr_logfile=/home/lzz/lzztest/logs/err.log stdout_logfile=/home/lzz/lzztest/logs/out.log stopsignal=INT
[root@localhost ~]# supervisord -c ./supervisord.conf Error: .ini file does not include supervisord section For help, use /usr/bin/supervisord -h
意思是少了 [supervisrod] 配置项,可以参考 supervisord-section-settings, 修改配置文件如下,还有log文件最好先建立好,supervisord不会自己创建。
[program:djangotest] user=lzz command=/usr/bin/python /home/lzz/lzztest/manage.py runserver 8000 autostart=true autorestart=true stderr_logfile=/home/lzz/lzztest/logs/err.log stdout_logfile=/home/lzz/lzztest/logs/out.log stopsignal=INT [supervisord]
[root@localhost ~]# supervisord -c /root/supervisord.conf
root 26253 1 0 02:57 ? 00:00:00 /usr/bin/python /usr/bin/supervisord -c /root/supervisord.conf
lzz 26254 26253 0 02:57 ? 00:00:00 /usr/bin/python /home/lzz/lzztest/manage.py runserver 8000
lzz 26255 26254 1 02:57 ? 00:00:01 /usr/bin/python /home/lzz/lzztest/manage.py runserver 8000
终端关闭,重新打开别的终端可以看到进程正常。
实验基本成功,后面进程之间关系,怎么自动启动和停止被控制的程序等以后在深入研究下。
参考:
本文出自 “orangleliu笔记本” 博客,转载请务必保留此出处http://blog.csdn.net/orangleliu/article/details/41317887
作者: orangleliu
标签:python supervisor 监控 进程
原文地址:http://blog.csdn.net/orangleliu/article/details/41317887