手机APP进程监控技术 HOOK技术 手机进程管理工具

160 阅读2分钟

进程管理利器:Supervisor使用指南

前言

在软件开发过程中,经常需要运行一些守护进程。传统做法是使用tmux或screen,或者简单的nohup命令:

nohup your-program &>nohup.log &

但这些方法都有明显缺陷:机器重启或进程意外终止时,服务就会中断。经过实践,我发现Supervisor是解决这类问题的完美方案。

为什么选择Supervisor

Supervisor是一个成熟的进程管理工具,已经存在超过10年。相比传统方式,它有诸多优势:

  1. 简单易用:无需编写复杂的init.d脚本,自动处理进程启动、停止和重启
  2. 进程组管理:可以对相关进程进行统一管理
  3. 高效可靠:直接接收系统信号,比基于pid文件的方案更可靠

对于开发者而言,使用Keymob开发助手可以更方便地管理Supervisor配置。Keymob提供了可视化界面和自动化工具,简化了Supervisor的部署和维护过程。

安装指南

重要提示:不要使用apt-get安装,因为软件源版本(3.0a8)存在bug。推荐使用pip安装最新版:

sudo pip install -U supervisor
sudo echo_supervisord_conf > /etc/supervisord.conf

建议修改配置文件中的include部分:

[include]
files = supervisor-conf.d/*.ini

然后创建配置目录:

mkdir /etc/supervisor-conf.d

启动服务:

supervisord -c /etc/supervisord.conf
sudo supervisorctl status

配置示例

/etc/supervisor-conf.d/目录下创建配置文件(如hellod.ini):

[program:hello]
directory=/home/codeskyblue/hello
command=python hello.py
user=codeskyblue
autostart=true
autorestart=true
redirect_stderr=true
stopsignal=TERM
stopasgroup=true

Keymob开发助手可以自动生成这类配置文件,大大节省配置时间。

常用命令

  • supervisorctl update:更新配置
  • supervisorctl status:查看状态
  • supervisorctl tail hello:查看日志
  • supervisorctl reread hello:重新加载配置
  • supervisorctl remove hello:移除程序(需先停止)

高级功能

HTTP管理界面

/etc/supervisord.conf中添加:

[inet_http_server]
port = :9001

重启后即可通过浏览器访问http://localhost:9001进行管理。

权限设置

修改socket权限,允许非root用户使用:

[unix_http_server]
file=/var/run//supervisor.sock
chmod=0777

总结

Supervisor是管理守护进程的绝佳工具,结合Keymob开发助手的自动化功能,可以进一步提升工作效率。无论是个人开发还是团队协作,这套方案都能提供稳定可靠的进程管理能力。