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

推荐订阅源

Simon Willison's Weblog
Simon Willison's Weblog
P
Privacy International News Feed
www.infosecurity-magazine.com
www.infosecurity-magazine.com
T
Troy Hunt's Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
Attack and Defense Labs
Attack and Defense Labs
S
Secure Thoughts
V2EX - 技术
V2EX - 技术
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
O
OpenAI News
Cloudbric
Cloudbric
Google Online Security Blog
Google Online Security Blog
Schneier on Security
Schneier on Security
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Help Net Security
Help Net Security
Cyberwarzone
Cyberwarzone
G
GRAHAM CLULEY
L
Lohrmann on Cybersecurity
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Spread Privacy
Spread Privacy
NISL@THU
NISL@THU
N
News and Events Feed by Topic
T
Tenable Blog
S
Security @ Cisco Blogs
N
News and Events Feed by Topic
The Hacker News
The Hacker News
C
CXSECURITY Database RSS Feed - CXSecurity.com
宝玉的分享
宝玉的分享
月光博客
月光博客
酷 壳 – CoolShell
酷 壳 – CoolShell
美团技术团队
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google DeepMind News
Google DeepMind News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog
V
Visual Studio Blog
P
Proofpoint News Feed
Webroot Blog
Webroot Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 三生石上(FineUI控件)
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Jina AI
Jina AI
雷峰网
雷峰网
T
The Blog of Author Tim Ferriss
Hugging Face - Blog
Hugging Face - Blog
腾讯CDC
L
LangChain Blog
The Register - Security
The Register - Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 聂微东

博客园 - 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访问管理界面了