惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Vulnerabilities – Threatpost
U
Unit 42
F
Fortinet All Blogs
aimingoo的专栏
aimingoo的专栏
P
Proofpoint News Feed
F
Full Disclosure
月光博客
月光博客
Engineering at Meta
Engineering at Meta
博客园_首页
The Register - Security
The Register - Security
G
Google Developers Blog
The Cloudflare Blog
博客园 - Franky
K
Kaspersky official blog
A
Arctic Wolf
Scott Helme
Scott Helme
C
Cisco Blogs
Hugging Face - Blog
Hugging Face - Blog
C
Check Point Blog
NISL@THU
NISL@THU
AI
AI
D
DataBreaches.Net
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Stack Overflow Blog
Stack Overflow Blog
Project Zero
Project Zero
The GitHub Blog
The GitHub Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
量子位
Vercel News
Vercel News
T
Tor Project blog
P
Privacy International News Feed
D
Docker
I
Intezer
L
LangChain Blog
P
Proofpoint News Feed
Security Latest
Security Latest
C
CXSECURITY Database RSS Feed - CXSecurity.com
T
Threatpost
博客园 - 聂微东
AWS News Blog
AWS News Blog
Martin Fowler
Martin Fowler
P
Privacy & Cybersecurity Law Blog
V
V2EX
Last Week in AI
Last Week in AI
C
Cybersecurity and Infrastructure Security Agency CISA
The Hacker News
The Hacker News
T
Tenable Blog
Blog — PlanetScale
Blog — PlanetScale
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog

博客园 - vsignsoft

CentOS7 安装 mysql-8.0.25-el7-x86_64.tar.gz Apache Doris 编译 Tensorflow 模型保存与调用 制作 macOS Mojave 映像文件 编程实现文件重定向 openssh 免用户名/密码/服务器地址,登录远程服务器 FreeSWITCH 增加模块 mod_ilbc 解析 iOS crash 文件 私有地址与公网地址的转换 使用 uWSGI 部署 Flask web 应用 安装 Flask macOS 上创建 Windows 兼容的 iso镜像文件 公式 X/N = int(H/N) * 65536 + [rem(H/N) * 65536 + L]/N 的运用 在VirtualBox 里安装纯DOS,进行汇编编程实践 Xcode 6、7 打包 苹果笔记本电脑,开不了机经验记录 CST时间转换成 yyyy-MM-dd格式 git 常规使用小结 XCode6 开发本地化应用
Supervisor 自动管理进程
vsignsoft · 2018-07-12 · via 博客园 - vsignsoft

supervisor 能在 python 环境下自动管理进程,当所管理的进程挂掉,supervisor 可以自动拉起被管理的进程。

1、安装 supervisor

2、测试安装是否成功

3、创建、编辑配置文件

主要要经历下面几个步骤:

(1) 在/etc 下创建目录 supervisor

(2) 在 /etc/supervisor 下创建主配置文件 supervisord.conf 和 项目应用配置文件目录 conf.d

(3) 在 conf.d 下创建项目应用配置文件 my_app.ini 并编辑配置之

(4) 在主配置文件 supervisord.conf 里引用项目应用配置文件 my_app.ini

3.1 在/etc 下创建目录 supervisor

cd /etc
sudo mkdir supervisor

最终:/etc/supervisor

3.2 在 /etc/supervisor 下创建主配置文件 supervisord.conf 和 项目应用配置文件目录 conf.d

自动生成配置文件 supervisord.conf
echo_supervisord_conf > supervisord.conf
cp supervisord.conf /etc/supervisor/supervisord.conf

cd /etc/supervisor
sudo mkdir conf.d

最终:
/etc/supervisor/supervisord.conf
/etc/supervisor/conf.d

3.3 在 conf.d 下创建项目应用配置文件 my_app.ini 并编辑配置之

my_app.ini 配置示例:

[program: my_app]
command=my_app -a 123 ; 启动 my_app 进程的命令行,便于 supervisord 拉起 my_app
autostart=true
startsec=3
autorestart=true
stopsignal=QUIT
priority=1
stopasgroup=true
killasgroup=true stdout_logfile
=.../my_project/log/supervisor.log stderr_logfile=.../my_project/log/supervisor_err.log

3.4 在主配置文件 supervisord.conf 里引用项目应用配置文件 my_app.ini

修改主配置文件 supervisord.conf

找到 include
;[include]
;files = relative/directory/*.ini

改为:
[include]
files = ./conf.d/*.ini

上面的 *.ini 已经包含了 my_app.ini 所以更通用。

4、启动 supervisor

supervisord -c supervisord.conf

使用 pstree -p 可以看到进程树形如: supervisord --- 被管理的进程

5、使用 supervisorctl 查看已经被管理的的程序

supervisorctl -c /etc/supervisor/supervisord.conf

6、重启 supervisor

注意:

1、supvisor 较适合管理监控业务应用,且只能监控前台程序,不能监视后台程序;

如监控 daemon 类程序,会拉不起被监控的程序,会出现错误:

BACKOFF  Exited too quickly (process log may have details)

2、每次修改配置文件后,用

重启 supervisor 才能生效

3、涉及 2个命令:

supervisord - 用于启动 supervisor 

supervisorctl  - 用于启动 supervisor 命令行,可执行 start、stop、status、reload 等操作

4、web 管理界面

支持通过 web 界面管理

修改 supervisord.conf 配置,即可启动 web 管理界面

修改成类似下面:

[inet_http_server]
port=127.0.0.1:9001
username=user
password=123

若 9001 端口拒绝访问,可开启访问

[root@localhost ~]# iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 9001 -j ACCEPT 
[root@localhost ~]# service iptables save  

接下来,就可以通过 浏览器web访问管理界面了