IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Python 调用 systemd watchdog 方法

    Yiran\'s Blog发表于 2019-03-10 10:21:19
    love 0
    systemd 链接到标题 在之前的博客中介绍过 systemd 的基本使用及通过 timer 来替换 crontab 的方法,今天来说一下如何调用 watchdog。 在 systemd 中,提供 watchdog 来检测服务状态状态,官方文档中描述这个功能为 “keep-alive ping”,我们可以在服务的启动配置中,添加 WatchdogSec 来指定 timeout 时间,在服务程序中通过发送 WATCHDOG=1 来不断的通知 systemd,服务处于正常状态,当超过 timeout 时间未收到 WATCHDOG=1 信号后,systemd 会根据 Restart 配置,决定是否自动重启服务。 示例 链接到标题 服务程序: root@yiran-30-250:/usr/lib/systemd/system $ cat /root/project/watchdog/test.py #!/usr/bin/python # coding:utf-8 import os import time import socket import logging print("Test starting up...") time.sleep(1) # 模拟执行真实业务 print("Test startup finished") try: sock = socket.socket(socket.AF_UNIX, socket.SOCK_DGRAM) addr = os.getenv("NOTIFY_SOCKET") # systemd default addr = "/run/systemd/notify" if addr and addr[0] == "@": addr = "\0" + addr[1:] except Exception: logging.


沪ICP备19023445号-2号
友情链接