[系统运维]Supervisord安装和启动程序

supervisord

  • 是client/server 系统
  • 把不是守护进程的进程变成守护进程
  • 监控它自己启动的进程,类似于看门狗
  • 可以作为开机启动的一种封装
  • 可以精确控制进程的状态,而不是pidfile那么不准确


安装

说白了就是个python包,官方文档,我这里系统是centos6.5 root用户

pip install supervisor

一般安装完的时候显示安装路径,如果不在bin路径,就自己添加一个软连接

配置文件在 /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用户下

编辑supervisord文件 文件的内容如下 (有错误),文件的位置就是root的home路径 /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

正常启动了,我们来看下进程: ps -efH|grep python

 
 
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  


  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值