标签:water toc var 使用 control rtu 文件 技术 cache
一、公司的类似ansible的工具也是用supervise管理的
[admin@mjyall-test-1 /service/ansible-oc-agent]$ ps -ef|grep 19070 root 19070 19068 0 00:44 ? 00:00:00 svscan /service root 19072 19070 0 00:44 ? 00:00:00 supervise ansible-oc-agent root 19073 19070 0 00:44 ? 00:00:00 supervise log [admin@mjyall-test-1 /service/ansible-oc-agent]$ sudo tree . . ├── log │ ├── run │ └── supervise │ ├── control │ ├── lock │ ├── ok │ └── status ├── run └── supervise ├── control ├── lock ├── ok └── status 3 directories, 10 files [admin@mjyall-test-1 /service/ansible-oc-agent]$ cat run #!/bin/bash . /etc/profile mkdir -p /opt/ansible-oc-agent/cache cd /opt/eoc-agent exec 2>&1 exec /opt/ansible-oc-agent/bin/startup.sh
二、学习下别人的文章
Reference:https://blog.csdn.net/u012373815/article/details/70217030
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 挂掉之后自动重启。
# 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程序,进行测试。
#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 进程了。
好了今天就说到这里吧。
标签:water toc var 使用 control rtu 文件 技术 cache
原文地址:https://www.cnblogs.com/itcomputer/p/9206816.html