使用supervisor进行守护进程,防止服务挂掉
最近项目中使用的数据接口服务如TSDB,kafka,订阅服务等在挂掉几次后,为了防止影响主系统的使用,我们要进行守护进程,在进程挂掉后自动拉起。
1.安装教程 https://www.cnblogs.com/toutou/p/supervisor.html
2.上面那个有问题的时候,在linux有python和pip的时候根据下面的教程安装 https://blog.csdn.net/qq_37049781/article/details/89097216
在完成安装后,接下来就是修改配置文件了。
我们根据命令:echo_supervisord_conf > /etc/supervisord.conf 生成了conf文件,这个是主文件。
在修改配置文件之前先创建一个文件夹,执行命令:mkdir supervisor
将conf文件放到文件夹中,看一下我的文件结构
接下来配置conf 执行命令:vi /etc/supervisord.conf
拉到最底下看到
这个代表执行supervisor的时候会执行这个文件下所有的ini文件
我们将需要守护进程的脚本执行命令在这些ini文件中进行配置
下面为ini文件里的详细信息(可能模糊,全图查看就好)
ini配置: [program:kafkaRedis] process_name=%(program_name)s_%(process_num)02d command=执行命令 autostart=true autorestart=true user=root numprocs=1 redirect_stderr=true stdout_logfile=/etc/supervisor/logs/kafkaRedis.log
我有三个需要守护的进程,所以我建了三个ini文件,只有上图的三项不一样,其他都不需更改
配置完后进行启动,直接读取conf文件启动
supervisord -c /etc/supervisord.conf
如果报错
Unlinking stale socket /tmp/supervisor.sock
就执行以下命令
unlink /tmp/supervisor.sock
解决启动,启动完可以通过supervisorctl查看检测的进程
通过ps -ef|grep 端口号命令 查看进程是否在线
再通过kill -9 端口号命令杀死进程再看程序会不会自动拉起
根据上图看到,在我kill掉进程之后supervisor自动拉起了守护的进程
相关文章
- 深入了解 Node 的多进程服务
- linux系统服务-进程
- CentOS6/7 配置守护进程
- 【Android 进程保活】应用进程拉活 ( 账户同步拉活 | 账号服务注册 | 源码资源 )
- 【Android 进程保活】应用进程拉活 ( JobScheduler 拉活 | JobScheduler 使用流程 | JobService 服务 | 不同版本兼容 | 源码资源 )
- 【Linux 内核】Linux 内核特性 ( 组织形式 | 进程调度 | 内核线程 | 多平台虚拟内存管理 | 虚拟文件系统 | 内核模块机制 | 定制系统调用 | 网络模块架构 )
- 【Linux 内核】进程管理 ( 内核线程概念 | 内核线程、普通进程、用户线程 | 内核线程与普通进程区别 | 内核线程主要用途 | 内核线程创建函数 kernel_thread 源码 )
- python多进程编程-死锁和递归锁(一)
- linux进程服务监测流程详解程序员
- 器上运行的进程Linux查看当前服务器上运行进程的实用指南(linux查看当前服务)
- Linux c 进程重启:实现无缝重启服务(linuxc进程重启)
- 最佳的 Linux 进程输出实践(linux进程输出)
- 管理Linux中掌握进程管理的必备技能.(linux中的进程)
- Linux进程虚拟内存:解析和优化(linux进程虚拟内存)
- 优秀的Oracle服务进程:构建未来(oracle服务进程)
- Linux查看服务进程号:一步到位(linux查看服务进程号)
- Docker-服务进程管理
- 深入了解Oracle RAC进程,优化企业数据库管理(oraclerac进程)
- 变换Oracle11g:革新型块变换进程(oracle11g块)
- Linux等待进程结束:让等待变得更轻松(linux等待进程结束)
- Linux Kill命令:杀死进程的利器(linuxkill命令)
- Oracle 利用进程查询数据(oracle查进程)
- Linux 系统中的僵尸进程及其处理方法(linux僵尸进程)
- 查看Redis进程号的指南(查询redis 进程号)
- 为应用程序池DefaultAppPool提供服务的进程关闭时间超过了限制