python进程监控 supervisor_如何使用Supervisor监控和管理python进程

1 安装

wget https://bootstrap.pypa.io/get-pip.py

python2 get-pip.py

pip2 install supervisor

echo_supervisord_conf >/etc/supervisord.conf

安装过程假如遇到如下问题:

pip2 install supervisor出现:error: invalid command 'bdist_wheel' Failed building wheel for supervisor

echo_supervisord_conf出现:pkg_resources.DistributionNotFound: meld3>=0.6.5

这是由于pip和setuptools的兼容性问题所致。 升级setuptool模块:

pip2 install setuptools --upgrade

$ pyenv install -l # 可用版本

$ pyenv version -l # 当前版本

$ pyenv install pypy2.7-5.9.0

$ pyenv versions

system

* 3.6.3 (set by /home/work/.pyenv/version)

pypy2.7-5.9.0

$ pyenv virtualenv pypy2.7-5.9.0 venv27

$ ls ~/.pyenv/versions/

3.6.3/ pypy2.7-5.9.0/ venv27/

$ . venv27/bin/activate

$ python --version

Python 2.7.13 (84a2f3e6a7f88f2fe698e473998755b3bd1a12e2, Oct 03 2017, 16:11:46)

[PyPy 5.9.0 with GCC 7.1.0]

$ pip install virtualenv

2 配置文件

vim /etc/supervisord.conf

; ref http://shouce.jb51.net/introduction-to-tornado/ch8.html

[group:tornadoes] ;声明了一个叫作tornadoes的组

programs=tornado-8000,tornado-8001,tornado-8002

[program:tornado-8000]

command=python /var/www/main.py --port=8000 ; 注意后台程序的端口

directory=/var/www ;程序的工作目录

user=www-data

autorestart=true

redirect_stderr=true

stdout_logfile=/var/log/tornado.log ;日志文件

loglevel=info

[program:tornado-8001]

command=python /var/www/main.py --port=8001

directory=/var/www

user=www-data

autorestart=true

redirect_stderr=true

stdout_logfile=/var/log/tornado.log

loglevel=info

[program:tornado-8002]

command=python /var/www/main.py --port=8002

directory=/var/www

user=www-data

autorestart=true

redirect_stderr=true

stdout_logfile=/var/log/tornado.log

loglevel=info

3 启动

# supervisord

/usr/lib/python2.6/site-packages/supervisor/options.py:298: UserWarning: Supervisord is running as root and it is searching for its configuration file in default locations (including its current working directory); you probably want to specify a "-c" argument specifying an absolute path to a configuration file for improved security.

'Supervisord is running as root and it is searching '

# supervisorctl

tornadoes:tornado-8000 RUNNING pid 32091, uptime 00:00:02

tornadoes:tornado-8001 RUNNING pid 32092, uptime 00:00:02

tornadoes:tornado-8002 RUNNING pid 32093, uptime 00:00:02

# pstree

systemd─┬─NetworkManager───2*[{NetworkManager}]

├─agetty

├─auditd───{auditd}

├─chronyd

├─crond

├─dbus-daemon

├─irqbalance

├─lvmetad

├─master─┬─pickup

│ └─qmgr

├─nginx───nginx

├─polkitd───5*[{polkitd}]

├─rsyslogd───2*[{rsyslogd}]

├─sshd─┬─sshd───sshd───bash───su───bash

│ └─sshd───sshd───bash───su───bash───pstree

├─2*[supervisord]

├─supervisord───3*[python3]

├─systemd-journal

├─systemd-logind

├─systemd-udevd

└─tuned───4*[{tuned}]

4 开机自动运行

curl http://git.oschina.net/snifferapache/codes/gxmvtfe1pnl5w4hbdc36y97/raw > /etc/init.d/supervisord

chmod +x /etc/init.d/supervisord

# in debian based:

sudo update-rc.d supervisord defaults

# in redhat

chkconfig --add supervisord

设置开机启动:chkconfig supervisord on

查看是否成功:chkconfig --list | grep supervisord

5 修改配置,重启

:reload your_program

reload重新载入supervisord.conf,一般只在修改supervisord.conf后使用,这个会让修改相关程序配置的程序关闭。没有修改过的程序配置的程序不会有影响。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值