免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 5008 | 回复: 31
打印 上一主题 下一主题

[服务应用] 怎样监控一个daemon服务? [复制链接]

论坛徽章:
4
金牛座
日期:2013-10-11 16:12:50卯兔
日期:2014-07-31 09:17:19辰龙
日期:2014-08-08 09:28:02狮子座
日期:2014-09-14 20:32:05
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-05-01 22:56 |只看该作者 |倒序浏览
本帖最后由 ssfjhh 于 2015-05-02 13:42 编辑

小弟常年混python版,对linux一窍不通,特来本版求助。
上个月买了个树莓派,刷了osmc(一个基于debian的linux发行版),然后装了个transmission-daemon当下载机,混PT,但是这个transmission-daemon总是崩溃,特别是下载速度较快的时候,网上搜了很久,都没有找到解决办法,别人家的树莓派运行得很稳定,根本就没碰到过我这样的问题,连续运行个半月一月的根本就不是个事儿,只有我这里会出现这样的问题。我已经没有信心解决这个transmission-daemon崩溃的问题了,所以想换个思路解决问题,监控这个transmission-daemon,当其崩溃后,自动重启该服务,虽然效果差了点,至少不需要等它挂掉好久我才发现问题,然后再手动的重新启动它了。

准确的说,我甚至都不知道这个服务是自动退出了,还是崩溃了;只要sudo service transmission-daemon status返回的状态不是下图红色箭头标示的这个,就重启它。
正常状态下,sudo service transmission-daemon status返回的结果是这样的:


“崩溃”后,sudo service transmission-daemon status返回的结果是这样的:


如果你有办法解决这个transmission-daemon崩溃的问题,那就更好了。

论坛徽章:
12
技术图书徽章
日期:2014-07-11 16:27:5215-16赛季CBA联赛之山西
日期:2016-01-08 16:10:11操作系统版块每日发帖之星
日期:2015-08-01 06:20:002015亚冠之武里南联
日期:2015-06-11 01:12:162015年亚洲杯之阿联酋
日期:2015-03-20 11:41:462015年亚洲杯纪念徽章
日期:2015-03-18 18:08:422015年辞旧岁徽章
日期:2015-03-03 16:54:15丑牛
日期:2015-01-10 22:23:32天秤座
日期:2014-08-20 15:53:35水瓶座
日期:2014-08-11 12:08:51午马
日期:2014-07-23 23:03:38IT运维版块每日发帖之星
日期:2016-02-18 06:20:00
2 [报告]
发表于 2015-05-01 23:44 |只看该作者
本帖最后由 phanx 于 2015-05-01 23:45 编辑

vi checkpt.sh
  1. #!/bin/sh
  2. while true
  3. do
  4. sudo service transmission-daemon status 2>&1 |grep failed
  5. if [ $? -eq 0 ]; then
  6.   sudo service transmission-daemon restart
  7. fi
  8. sleep 5
  9. done
复制代码
然后
chmod +x checkpt.sh
nohup ./checkpt.sh &

论坛徽章:
13
双鱼座
日期:2013-10-23 09:30:05数据库技术版块每日发帖之星
日期:2016-04-20 06:20:00程序设计版块每日发帖之星
日期:2016-03-09 06:20:002015亚冠之塔什干火车头
日期:2015-11-02 10:07:452015亚冠之德黑兰石油
日期:2015-08-30 10:07:07数据库技术版块每日发帖之星
日期:2015-08-28 06:20:00数据库技术版块每日发帖之星
日期:2015-08-05 06:20:002015年迎新春徽章
日期:2015-03-04 09:57:09辰龙
日期:2014-12-03 14:45:52酉鸡
日期:2014-07-23 09:46:23亥猪
日期:2014-03-13 08:46:22金牛座
日期:2014-02-11 09:36:21
3 [报告]
发表于 2015-05-02 09:28 |只看该作者
试试supervisor

论坛徽章:
4
金牛座
日期:2013-10-11 16:12:50卯兔
日期:2014-07-31 09:17:19辰龙
日期:2014-08-08 09:28:02狮子座
日期:2014-09-14 20:32:05
4 [报告]
发表于 2015-05-02 13:21 |只看该作者
回复 3# bikong0411


    太感谢了,再弱弱的问个问题,我是用ssh登录的,关掉ssh窗口,这个脚本还在运行吗?

论坛徽章:
4
金牛座
日期:2013-10-11 16:12:50卯兔
日期:2014-07-31 09:17:19辰龙
日期:2014-08-08 09:28:02狮子座
日期:2014-09-14 20:32:05
5 [报告]
发表于 2015-05-02 13:24 |只看该作者
回复 3# bikong0411


    谢谢回复,不过我在[url= http://linbo.github.io/2013/04/04/supervisor/]这里[/url]看到这样一句话,所以没有去尝试。
Supervisor是一个Python开发的client/server系统,可以管理和监控*nix上面的进程。不过同daemontools一样,它也不能监控daemon进程

论坛徽章:
4
金牛座
日期:2013-10-11 16:12:50卯兔
日期:2014-07-31 09:17:19辰龙
日期:2014-08-08 09:28:02狮子座
日期:2014-09-14 20:32:05
6 [报告]
发表于 2015-05-02 13:29 |只看该作者
回复 3# bikong0411


    试了下,确实可以重新启动这个服务,但是运行了这个脚本以后,几秒种transmission-daemon就重新启动一次,没办法只好把这个脚本kill掉了。

论坛徽章:
17
巨蟹座
日期:2014-11-20 23:04:5215-16赛季CBA联赛之北控
日期:2018-08-01 16:08:4015-16赛季CBA联赛之浙江
日期:2017-12-08 11:25:2415-16赛季CBA联赛之四川
日期:2016-11-21 00:16:50操作系统版块每日发帖之星
日期:2016-07-28 06:20:0015-16赛季CBA联赛之吉林
日期:2016-05-25 15:36:04操作系统版块每日发帖之星
日期:2016-02-12 06:20:002015亚冠之西悉尼流浪者
日期:2015-08-28 14:48:322015亚冠之平阳省
日期:2015-08-19 14:54:162015亚冠之武里南联
日期:2015-07-07 10:49:112015亚冠之城南
日期:2015-06-22 10:15:002015亚冠之山东鲁能
日期:2015-06-18 18:03:44
7 [报告]
发表于 2015-05-02 13:56 |只看该作者
本帖最后由 yyu0378 于 2015-05-02 14:00 编辑
phanx 发表于 2015-05-01 23:44
vi checkpt.sh然后
chmod +x checkpt.sh
nohup ./checkpt.sh &

    #!/bin/sh
    while true
    do
    num=`sudo service transmission-daemon status 2>/dev/null|grep failed|wc -l`
    if [ ${num} -eq 1 ]; then
      sudo service transmission-daemon start
    fi
    sleep 5
    done
试试看这样是否可以,之前那个判断条件有问题

求职 : Linux运维
论坛徽章:
203
拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:092015小元宵徽章
日期:2015-03-06 15:58:182015年亚洲杯之约旦
日期:2015-04-05 20:08:292015年亚洲杯之澳大利亚
日期:2015-04-09 09:25:552015年亚洲杯之约旦
日期:2015-04-10 17:34:102015年亚洲杯之巴勒斯坦
日期:2015-04-10 17:35:342015年亚洲杯之日本
日期:2015-04-16 16:28:552015年亚洲杯纪念徽章
日期:2015-04-27 23:29:17操作系统版块每日发帖之星
日期:2015-06-06 22:20:00操作系统版块每日发帖之星
日期:2015-06-09 22:20:00
8 [报告]
发表于 2015-05-02 18:18 |只看该作者
@ssfjhh
nohup ./checkpt.sh &
这句话的意思是:退出终端后,依然在后台运行

论坛徽章:
4
金牛座
日期:2013-10-11 16:12:50卯兔
日期:2014-07-31 09:17:19辰龙
日期:2014-08-08 09:28:02狮子座
日期:2014-09-14 20:32:05
9 [报告]
发表于 2015-05-02 18:41 |只看该作者
lyhabc 发表于 2015-05-02 18:18
@ssfjhh
nohup ./checkpt.sh &
这句话的意思是:退出终端后,依然在后台运行
  1. osmc@osmc:~$ nohup ./checkpt.sh &
  2. [1] 1953
  3. osmc@osmc:~$ nohup: 忽略输入并把输出追加到"nohup.out"
  4. ^C
复制代码
nohup: 忽略输入并把输出追加到"nohup.out"  这一句不知道是否算是报错?

论坛徽章:
4
金牛座
日期:2013-10-11 16:12:50卯兔
日期:2014-07-31 09:17:19辰龙
日期:2014-08-08 09:28:02狮子座
日期:2014-09-14 20:32:05
10 [报告]
发表于 2015-05-02 18:46 |只看该作者
回复 8# lyhabc


    OK, 已经没有问题了。太感谢了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP