免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: ssfjhh
打印 上一主题 下一主题

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

论坛徽章:
0
21 [报告]
发表于 2015-05-05 06:06 |只看该作者
回帖挺你一下。。

论坛徽章:
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
22 [报告]
发表于 2015-05-05 09:00 |只看该作者
本帖最后由 phanx 于 2015-05-05 09:18 编辑

回复 19# yyu0378

来看看下面这段测试脚本b.sh。
  1. [root@localhost ~]# cat b.sh
  2. #!/bin/bash
  3. service exchange-bmc-os-info status 2>&1 | grep --color inactive
  4. if [ $? -eq 0 ]; then
  5.   echo "service is failed"
  6. else
  7.   echo "service is active"
  8. fi


  9. 执行service exchange-bmc-os-info status会输出服务的状态,为inactive或者ok
  10. [root@localhost ~]# service exchange-bmc-os-info status
  11. exchange-bmc-os-info: inactive



  12. 当服务停止时,b.sh的输出是 service is failed
  13. [root@localhost ~]# ./b.sh
  14. exchange-bmc-os-info: inactive
  15. service is failed


  16. 启动服务后,可以看到状态是ok了。
  17. [root@localhost ~]# service exchange-bmc-os-info start
  18. Synchronizing BMC information...
  19. [确定]
  20. [root@localhost ~]# service exchange-bmc-os-info status
  21. exchange-bmc-os-info: ok


  22. 这个时候,b.sh的输出是 service is active。
  23. grep inactive 没有输出,且$? 的值是-1 所以,if判断后输出是  service is active
  24. [root@localhost ~]# ./b.sh
  25. service is active
复制代码

论坛徽章:
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
23 [报告]
发表于 2015-05-05 09:10 |只看该作者
回复 20# ssfjhh


    因为我没有你的环境,所以不好判断为啥会有问题。

你可以试试修改一下脚本
  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.   sudo service transmission-daemon status 2>&1
  8.   sleep 10
  9.   sudo service transmission-daemon status 2>&1 |grep failed
  10. fi

  11. sleep 5

  12. done
复制代码
然后你执行这个脚本的时候不放到后台。也就是说不要用 nohup ./checkpt.sh & 来执行了,改成直接前台执行 ./checkpt.sh

然后手工kill掉你的transmission-daemon,同时观察一下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
24 [报告]
发表于 2015-05-13 09:57 |只看该作者
回复 23# phanx


    谢谢,前端时间比较忙,没折腾这个东西。刚试了下,用你给的脚本是可以启动trnansmission-daemon的,不管它是自己挂掉的,还是被我kill掉的,这个脚本都能让transmission-daemon重新启动。但是transmission-daemon十来秒就重启一次,这也不是我想要的结果。

该脚本的输出如下所示:
  1. osmc@osmc:~$ ./checkpt.sh
  2. ● transmission-daemon.service - Transmission BitTorrent Daemon
  3.    Loaded: loaded (/lib/systemd/system/transmission-daemon.service; enabled)
  4.    Active: active (running) since 三 2015-05-13 09:53:45 CST; 68ms ago
  5. Main PID: 29590 (transmission-da)
  6.    CGroup: /system.slice/transmission-daemon.service
  7.            └─29590 /usr/bin/transmission-daemon -f --log-error
  8. ● transmission-daemon.service - Transmission BitTorrent Daemon
  9.    Loaded: loaded (/lib/systemd/system/transmission-daemon.service; enabled)
  10.    Active: active (running) since 三 2015-05-13 09:54:06 CST; 69ms ago
  11. Main PID: 29664 (transmission-da)
  12.    CGroup: /system.slice/transmission-daemon.service
  13.            └─29664 /usr/bin/transmission-daemon -f --log-error
  14. ● transmission-daemon.service - Transmission BitTorrent Daemon
  15.    Loaded: loaded (/lib/systemd/system/transmission-daemon.service; enabled)
  16.    Active: active (running) since 三 2015-05-13 09:54:27 CST; 70ms ago
  17. Main PID: 29737 (transmission-da)
  18.    CGroup: /system.slice/transmission-daemon.service
  19.            └─29737 /usr/bin/transmission-daemon -f --log-error
  20. ● transmission-daemon.service - Transmission BitTorrent Daemon
  21.    Loaded: loaded (/lib/systemd/system/transmission-daemon.service; enabled)
  22.    Active: active (running) since 三 2015-05-13 09:54:48 CST; 67ms ago
  23. Main PID: 29813 (transmission-da)
  24.    CGroup: /system.slice/transmission-daemon.service
  25.            └─29813 /usr/bin/transmission-daemon -f --log-error
  26. ● transmission-daemon.service - Transmission BitTorrent Daemon
  27.    Loaded: loaded (/lib/systemd/system/transmission-daemon.service; enabled)
  28.    Active: active (running) since 三 2015-05-13 09:55:09 CST; 65ms ago
  29. Main PID: 29889 (transmission-da)
  30.    CGroup: /system.slice/transmission-daemon.service
  31.            └─29889 /usr/bin/transmission-daemon -f --log-error
  32. ● transmission-daemon.service - Transmission BitTorrent Daemon
  33.    Loaded: loaded (/lib/systemd/system/transmission-daemon.service; enabled)
  34.    Active: active (running) since 三 2015-05-13 09:55:30 CST; 64ms ago
  35. Main PID: 29965 (transmission-da)
  36.    CGroup: /system.slice/transmission-daemon.service
  37.            └─29965 /usr/bin/transmission-daemon -f --log-error
  38. ● transmission-daemon.service - Transmission BitTorrent Daemon
  39.    Loaded: loaded (/lib/systemd/system/transmission-daemon.service; enabled)
  40.    Active: active (running) since 三 2015-05-13 09:55:51 CST; 65ms ago
  41. Main PID: 30041 (transmission-da)
  42.    CGroup: /system.slice/transmission-daemon.service
  43.            └─30041 /usr/bin/transmission-daemon -f --log-error
  44. ● transmission-daemon.service - Transmission BitTorrent Daemon
  45.    Loaded: loaded (/lib/systemd/system/transmission-daemon.service; enabled)
  46.    Active: active (running) since 三 2015-05-13 09:56:12 CST; 67ms ago
  47. Main PID: 30113 (transmission-da)
  48.    CGroup: /system.slice/transmission-daemon.service
  49.            └─30113 /usr/bin/transmission-daemon -f --log-error
  50. ● transmission-daemon.service - Transmission BitTorrent Daemon
  51.    Loaded: loaded (/lib/systemd/system/transmission-daemon.service; enabled)
  52.    Active: active (running) since 三 2015-05-13 09:56:33 CST; 73ms ago
  53. Main PID: 30184 (transmission-da)
  54.    CGroup: /system.slice/transmission-daemon.service
  55.            └─30184 /usr/bin/transmission-daemon -f --log-error
  56. ● transmission-daemon.service - Transmission BitTorrent Daemon
  57.    Loaded: loaded (/lib/systemd/system/transmission-daemon.service; enabled)
  58.    Active: active (running) since 三 2015-05-13 09:56:54 CST; 67ms ago
  59. Main PID: 30258 (transmission-da)
  60.    CGroup: /system.slice/transmission-daemon.service
  61.            └─30258 /usr/bin/transmission-daemon -f --log-error
复制代码

论坛徽章:
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
25 [报告]
发表于 2015-05-13 10:01 |只看该作者
回复 24# ssfjhh


再上一个带高亮显示的图片吧。
   

论坛徽章:
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
26 [报告]
发表于 2015-05-13 11:31 |只看该作者
每十秒重启就是判断条件有问题,试试看我的条件吧

论坛徽章:
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
27 [报告]
发表于 2015-05-13 14:23 |只看该作者
yyu0378 发表于 2015-05-13 11:31
每十秒重启就是判断条件有问题,试试看我的条件吧
  1. ./checkpt.sh: 7: ./checkpt.sh: num: not found
  2. ./checkpt.sh: 9: [: -eq: unexpected operator
复制代码

论坛徽章:
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
28 [报告]
发表于 2015-05-13 14:25 |只看该作者
yyu0378 发表于 2015-05-13 11:31
每十秒重启就是判断条件有问题,试试看我的条件吧



论坛徽章:
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
29 [报告]
发表于 2015-05-13 22:33 |只看该作者
回复 24# ssfjhh


   有点奇怪,只有再改改,看看。
  1. #!/bin/bash

  2. while true
  3. do
  4.         sudo service transmission-daemon status 2>&1 |grep failed
  5.         fail=$?
  6.         echo $fail
  7.         if [ $fail -eq 0 ]; then
  8.           echo "Service Failed, Restart"
  9.           sudo service transmission-daemon restart
  10.           sleep 5
  11.           sudo service transmission-daemon status 2>&1
  12.           sudo service transmission-daemon status 2>&1 |grep failed
  13.           fail=$?
  14.           echo $fail
  15.         else
  16.           echo "Service Active"
  17.         fi
  18.         sleep 5
  19. done
复制代码

论坛徽章:
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
30 [报告]
发表于 2015-05-14 08:54 |只看该作者
回复 29# phanx


    这下不会不停的重启了,但是我试着动手kill掉transmission-daemon的进程后,似乎它无法再次启动起来。

手动kill掉进程以后,sudo service transmission-daemon status的返回结果是这样的
  1. osmc@osmc:~$ sudo service transmission-daemon status
  2. ● transmission-daemon.service - Transmission BitTorrent Daemon
  3.    Loaded: loaded (/lib/systemd/system/transmission-daemon.service; enabled)
  4.    Active: inactive (dead) since 四 2015-05-14 08:47:23 CST; 2min 45s ago
  5.   Process: 6091 ExecReload=/bin/kill -s HUP $MAINPID (code=exited, status=0/SUCCESS)
  6.   Process: 12302 ExecStart=/usr/bin/transmission-daemon -f --log-error (code=exited, status=0/SUCCESS)
  7. Main PID: 12302 (code=exited, status=0/SUCCESS)
复制代码
不能再次启动的原因似乎是这样的,status返回的状态不是failed,而是inactive(dead)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP