我有这个 python 代码,我需要运行systemd它并监视它是否也被挂起。问题是,当我直接从 systemd 运行 python 脚本时,它工作正常。但是,当 python 脚本从另一个从我的 systemd 服务运行的 shell 脚本运行时,它说
sdping_py.service: Got notification message from PID 6828, but reception only permitted for main PID 6768
问题似乎是作为 shell 脚本和 systemd 服务的子进程运行的 python 脚本期望来自 shell 脚本的通知,这是服务的主要进程。我怎样才能解决这个问题?我的应用程序严格需要从 shell 脚本运行。
这是我试过的python代码,
import sdnotify, time
n = sdnotify.SystemdNotifier()
print("Gonna start")
time.sleep(2)
print("Started!")
n.notify("READY=1")
i=0
while True:
print(i)
time.sleep(1)
n.notify("WATCHDOG=1")
i+=1
这是我的服务文件
[Unit]
Description=Test watchdog Demo process
DefaultDependencies=false
Requires=basic.target
[Service]
Type=notify
WatchdogSec=2
ExecStart=/home/teshanl/sdping/scripts/sdping_py.sh
#ExecStart=/usr/bin/python /home/teshanl/sdping/src/sdping_pub.py
StartLimitInterval=5min
StartLimitBurst=5
#StartLimitAction=reboot
Restart=always
这是shell文件
#!/bin/bash
/usr/bin/python /home/teshanl/sdping/src/sdping_pub.py
江户川乱折腾
相关分类