supervise进程管理利器
Daemontools是一个包含了很多管理Unix服务的工具的软件包。其中最核心的工具是supervise,它的功能是监控一个指定的服务,当该服务进程消亡,则重新启动该进程。
而要添加让supervise监控的服务非常容易,只需要添加一个被监控的服务的目录,在该目录中添加启动服务器的名字为run的脚本文件即可。
supervisor是所有项目的父进程:
supervisor(pid=29208)会成为主进程,管理各个项目的进程。
当项目A(pid=11531)挂掉,supervisor根据设置autorestart、startretries是否重启。
若要重启,则会重启项目A(pid=13357),
若不重启,则项目A(pid=0)。
当supervisor被kill,管理的项目全部死掉,重启supervisor(pid=14140),管理的项目都重启;
应用
在此处我使用supervisor 管理 flume 的agent,当agent 挂掉之后自动重启。
supervise安装
- 获取supervise 安装包:
点我下载:daemontools-0.76.tar.gz - 新建文件夹supervise
- 下载daemontools-0.76.tar.gz 到 supervise 目录下
解压daemontools-0.76.tar.gz
# tar -zxvf daemontools-0.76.tar.gz
# cd admin/daemontools-0.76
4.编辑conf-cc,在conf-cc 最后加上
vi src/conf-cc-include /usr/include/errno.h
如图所示
5.执行安装命令(此命令需要安装过gcc。如果没有安装gcc 需要安装 gcc )
# package/install
// CentOS 安装gcc 命令
yum -y install gcc gcc-c++ autoconf make
6.检查安装
# cat /etc/inittab
如果出现如下图所示则安装成功。
编写小程序测试
supervise添加监控的服务非常容易,只需要添加一个被监控的服务的目录,在该目录中添加启动服务器的名字为run的脚本文件即可。
此处编写一个简单的c程序,进行测试。
- 建立一个test目录,进入该目录
- 编写简单测试程序test.c 内容如下:
#include <stdio.h>
#include <stdlib.h>
int main()
{int ix = 0;for(;; ix++){printf("%d ", ix);sleep(1);}return 0;
}
3.编译test.c输出为test。
gcc -o test test.c
4.在test目录下编写脚本run(注意:名字必须为run。注意run 脚本里不能后台启动。),来执行test程序,以便supervise进行调用
#!/bin/sh
echo "start test!"
./test
5.启动
nohup supervise test/ > /dev/null 2>&1 &
6.检查test进程
ps -ef| grep "test"
如下图:
此时我门模拟杀死 test 进程。则test进程会重启。
(我门可以看到重启的test 进程为 21099)
如果要杀死 test进程怎么办呢?
很简单先杀死 supervise 的守护进程就好了。也就是杀死上图的 21080 进程。杀死守护进程以后再杀死test 进程就不会重启test 进程了。
好了今天就说到这里吧。
supervise进程管理利器相关推荐
- supervise用法_Linux操作下的进程管理利器 Supervise
Supervise是daemontools的一个工具,可以用来监控管理unix下的应用程序运行情况,在应用程序出现异常时,supervise可以重新启动指定程序.本文简单介绍一下supervise的安 ...
- 利用进程管理利器supervise监控并自动重启进程
一.什么是supervise supervise是Daemontools里的一个核心工具,Daemontools是一个包含了很多管理Unix服务的工具的软件包.而其中最核心的工具就是supervise ...
- supervisord 进程管理利器
Supervisor概述 supervisor是一个 Client/Server模式的系统,允许用户在类unix操作系统上监视和控制多个进程,或者可以说是多个程序.supervisor与launc ...
- 绝对Linux服务器管理利器webmin
用Linux配置服务器绝对是件费时间的事情.虽然外行人看见咱们在黑乎乎屏幕上打着一行行命令代码似乎是很NB,可真实的辛苦也就只有自己知道了.现在好了,有了webmin这款软件,绝对让我们管理服务器时能 ...
- 【干货】快速部署微软开源GPU管理利器: OpenPAI
介绍 不管是机器学习的老手,还是入门的新人,都应该装备上尽可能强大的算力.除此之外,还要压榨出硬件的所有潜力来加快模型训练.OpenPAI作为GPU管理的利器,不管是一块GPU,还是上千块GPU,都能 ...
- NodeJS管理利器 - pm2常用命令
pm2常用命令 pm2是node进程管理器,在服务器上搭建node服务是把利器.最近整理了下常用的一些命令,会持续进行更新. 安装: npm install pm2 -g //安装pm2 pm2 up ...
- linux进程通信核心态时间,Linux进程管理简谈
Linux系统进程管理简谈 进程是什么? 进程是对处理器.主存和I/O设备的抽象表示. 进程是操作系统对一个正在运行的程序的一种抽象,在一个系统上可以同时运行多个进程,而每个进程都好像在独占的使用硬件 ...
- 操作系统学习笔记 第二章:进程管理(王道考研)
本文章基于 2019 王道考研 操作系统 考试复习推荐资料:操作系统复习总结 - 百度文库 (baidu.com) 需要相关电子书的可以关注我的公众号BaretH后台回复操作系统 第一章:操作系统概述 ...
- C++ Windows进程管理
功能: 1.各个进程启动.挂起.恢复.停止等 2.监听进程的运行状态,进程退出(正常.非正常)时,通知用户 3.异步队列 4.线程安全 进程管理器类: #ifndef __ProcessManager ...
- php 进程管理,php如何管理进程
进程管理-防止进程成为僵尸进程 创建好了进程,那么怎么对子进程进行管理呢? 使用信号,对子进程的管理,一般有两种情况:(推荐学习:PHP编程从入门到精通) posix_kill():此函数并不能顾名思 ...
最新文章
- 【AI】图示:精确度(查准率)Precision、召回率(查全率)Recall
- Win Ser 2008/2012 (R2) + NVIDIA Optimus 笔记本显卡
- Ubuntu终端字体颜色方案
- POLLERR的故事
- 互联网架构“高并发”
- 计算机兴趣小组的意义,计算机兴趣小组总结
- 基础 - jQuery
- 谭浩强C语言(第三版)习题6.11
- 序列二次规划——SQP
- 刷入第三方 recovery twrp
- 微信小程序 — — 实现微信公众号留言功能(附前、后端源码)
- 信息化系统软件实施工程师基础技能
- 斯托克斯公式(三维中两类曲面和第二类曲线互相转换)
- cad画直角命令_在cad中怎么画角度?cad画角度三种方法介绍
- 硬盘坏了mysql数据恢复_mysql服务器硬盘损坏后的数据恢复
- 比起结果过程更加重要
- 2019最新前端薪资报告来啦!前端的工资到底有多高?其实真相是这样的......
- 数学物理方程课程感想
- 白盒测试与黑盒测试的定义与区别
- 即使是个收外卖的前台小妹,也要时刻想着如何咸鱼翻身