使用Daemontools监控管理服务
linux主要使用supervise来管理常驻进程。基于supervise的两个比较重要的工具是Daemontools和Supervisor。
实际上,supervise也算Daemontools的一个工具。Daemontools是svscanboot,svscan,supervise,svc,svok,svstat等一系列工具的合集。
为什么使用Daemontools
参考这里
Paste_Image.png
- 增加删除service
只需要在/service中删除或增加link即可 - 快速启动
在/service中增加服务, 即可自动在五秒内完成启动 - 可靠重启
service down掉之后,自动重启 - 简单可靠的控制
配置好 /service 之后, 使用svc命令,可以控制service daemon。 比如:
- svc -h /service/yourdaemon:
sends HUP - svc -t /service/yourdaemon:
sends TERM, and automatically restarts the daemon after it dies
*svc -d /service/yourdaemon:
sends TERM, and leaves the service down - svc -u /service/yourdaemon:
brings the service back up - svc -o /service/yourdaemon:
runs the service once
- 干净的进程状态
重启的service进程,跟第一次启动的一样干净,纯洁无暇 - 可移植
通过配置 /service,程序能在各个linux系统(Linux, BSD, Solaris, etc)上,按相同的方式运行
安装 和 使用
NOTE: 必须使用 root 运行所有的东西
- Step 1 安装:
mkdir -p /package
chmod 1755 /package
cd /package
wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
tar -xpf daemontools-0.76.tar.gz
rm -f daemontools-0.76.tar.gz
cd admin/daemontools-0.76
package/install
如果 package/install
失败,则编辑 ./src/conf-cc
文件,增加-include errno.h/
:
ed ./src/conf-cc
1s/$/ -include errno.h/
wq
或者
vim ./src/conf-cc
增加gcc配置 -include errno.h
然后重试package/install
安装
- Step 2 启动:
启动 Daemontools
apt-get install csh "(for Ubuntu/Debian users)"
csh -cf '/command/svscanboot &'
设置 Daemontools 自启动(on system boot)
sed -i "1 a\csh -cf '/command/svscanboot &'" /etc/rc.local
chmod +x /etc/rc.local
- Step 3 创建service:
创建 Services 目录,并链接到/service
。 下例,创建服务 在/services
mkdir /services
mkdir /services/somerandomservice
echo -e '#!/bin/sh\nexec somerandomcommand' > /services/somerandomservice/run
chmod 755 /services/somerandomservice/run
ln -s /services/somerandomservice/ /service/
创建链接到 /service 目录, daemontools就会启动service, 这个时候可以检查service的uptime
svstat /service/somerandomservice
可以知道service的状态、pid和运行时间
(note: 如果service的运行时间小于1秒,则可能是run脚本出错,需要调试)
- Step 4 指定用户:
使用特定用户运行service, 与上面的运行类似,不过要使用setuidgid
指定用户
mkdir /services/somerandomuserservice
ed /services/somerandomuserservice/run
a
#!/bin/sh
exec setuidgid somerandomuser somerandomcommand
.
w!
chmod 755 %
q
ln -s /services/somerandomuserservice/ /service/
(note: 以上使用ed
编辑,也可以使用其他编辑,实现一样的目的)
除了通过指定uidgid,也可以通过全登录的方式:
mkdir /services/somerandomuserservice
ed /services/somerandomuserservice/run
a
#!/bin/sh
exec su - somerandomuser -c 'exec somerandomcommand'
.
w!
chmod 755 %
q
ln -s /services/somerandomuserservice/ /service/
- Step 5 logger:
配置multilog, 来对service打logger
adduser logger
mkdir /services/somerandomservice/log
mkdir /services/somerandomservice/log/main
chown logger /services/somerandomservice/log/main
ed /services/somerandomservice/log/run
a
#!/bin/sh
exec setuidgid logger multilog t ./main
.
w!
chmod 755 %
q
- Step 6 Debug:
检查 run 脚本
cd /service/somerandomservice
svc -d .
./run
检查,修复bug之后,使用svc -u /service/somerandomservice
启动服务
- Step 6 检查日志:
cd /service/somerandomservice
tail -n5 log/main/current
- Step 7 重启service:
svc -t /service/somerandomservice
- Step 8 删除service:
rm /service/somerandomservice
svc -dx /services/somerandomservice
作者:zoyanhui
链接:https://www.jianshu.com/p/a5bf164879b7
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
使用Daemontools监控管理服务相关推荐
- GPS监控系统用于车辆实时定位,轨迹回放,电子围栏监控管理服务
GPS监控系统是一套可以管理实时位置,轨迹回放,电子围栏,报警统计等功能的综合系统! GPS设备发送位置数据到后台服务器,经过后台算法解析,纠偏,过滤等处理将位置数据展示在WEB前端和APP端,然后通 ...
- (四)RabbitMQ消息队列-服务详细配置与日常监控管理
(四)RabbitMQ消息队列-服务详细配置与日常监控管理 原文:(四)RabbitMQ消息队列-服务详细配置与日常监控管理 RabbitMQ服务管理 启动服务:rabbitmq-server -de ...
- 全方位事件监控管理,阿里云日志服务Kubernetes事件中心正式上线
2020年2月21日,阿里云日志服务Kubernetes事件中心正式上线,为Kubernetes事件提供集中化采集.存储.分析.可视化.告警等能力,帮助Kubernetes使用者快速构建准实时.高可靠 ...
- CentOS6.9安装daemontools工具管理服务进程
最近工作中用到了daemontools工具来管理服务进程,再次总结下. 当服务进程因为某些原因(包括kill)挂掉了,daemontools会重新启动这个进程 环境介绍: CentOS 6.9 x86 ...
- Supervise 系统进程监控管理
写在最前: 在项目中总会存在一些意想不到的的问题,导致任务出错中断停止,我们需要去监控任务的执行状态,并当进程执行失败的时候进行重启. Daemontools 是一个包含了很多管理 Unix 服务的工 ...
- 如何使用Azure API管理服务?
对打通云应用之间的通信而言,API至关重要,正确管理这些API也非常关键.让我们从学习Azure的API服务来开始这一进程. 在云和微服务架构时代,API是数字化业务的通用语言.根据分析公司Forre ...
- IBM整合管理服务:云时代驱动IT服务创新
本文讲的是IBM整合管理服务:云时代驱动IT服务创新[IT168 专稿]日前,IBM全球信息科技服务部(GTS)在位于苏州工业园区的苏州国科数据中心举办IBM管理服务中心开业仪式.该整合管理服务中心坐 ...
- Spark源码阅读02-Spark核心原理之监控管理
监控管理 监控管理 UI监控 实时UI监控 历史UI监控 Metrics 输入源(Metrics Source)介绍 输出方式(Metrics Sink)介绍 TEST 监控管理 Spark提供了UI ...
- Zabbix监控httpd服务
Zabbix监控httpd服务 一.工作要求及目的 二.WEB配置步骤 1.进入监控主机列表 2.链接模板 3.查看自定义HTTP端口监控项 4.查看自定义的触发器 三.客户端测试http服务停止报警 ...
- 【APP】centos 5.X安装网络和系统监控管理平台--OpenNMS
关于OpenNMS:OpenNMS是一个企业级基于Java/XML的分布式网络和系统监控管理平台.OpenNMS是你管理网络的绝好工具,它能够显示你网络中各中终端和服务器的状态和配置,为你方便地管理网 ...
最新文章
- Linux 服务器上快速配置阿里巴巴 OPSX NTP服务
- Ubuntu 14.04 64位机上配置Android Studio操作步骤
- WampServer详解
- 皮一皮:自作多情的表率...
- 如何通过redisTemplate获得key的过期时间
- Nacos命名空间管理
- List列表的万能的适配器
- IDEA中引入Bootstrap并展示第一个模板
- Angular / RxJs我应该何时退订`Subscription`
- java8 treemap 排序_java中TreeMap排序的示例代码
- 52_LSTM及简介,RNN单元的内部结构,LSTM单元的内部结构,原理,遗忘门,输入门,输出门,LSTM变体GRU,LSTM变体FC-LSTM,Pytorch LSTM API介绍,案例(学习笔记)
- 为地图marker 设置网络图片
- 基于华为云轻松搭建属于自己的网站 (Linux,Apache,MySQL,PHP)
- 分布式资源管理与任务调度框架Yarn
- WEB学习——JavaScript
- 文本分类模型学习笔记
- Notion中的Tex数学表达式(完整版)
- MySQL隔离级别--未提交读,提交读,可重复读,序列化--详解(有示例)
- 【LeetCode】377. 组合总和 Ⅳ(错题2刷)
- 2020汽车消费把脉:如何挠到年轻消费者的内心?
热门文章
- 单片机驱动mos管电路图
- React脚手架创建项目
- 单机:Oracle单机数据库一键安装(11GR2/12C/18C/19C/21C)
- ​ 解决金仓数据库KingbaseES对pg模式的单机数据库插入数据时,出现日志打印的问题
- BP神经网络学习算法原理
- Gitlab:从其它项目组里导入一个项目
- 4.1 手工编写第一个Jmeter性能测试脚本
- 映美精黑白相机在linux平台上的使用(一)
- 微信html5 video自动播放,【微信H5开发】audio/video标签的自动播放
- 记一次成功修复U盘的痛苦经历