
임베디드 리눅스 환경을 사용하고 있습니다. Qt 애플리케이션을 시작하는 서비스를 만들었습니다.
[Unit]
Description=AutoStart App
[Service]
Type=simple
ExecStartPre=/home/root/Clean_Application.sh
ExecStart=/home/root/Startup_Script.sh
WatchdogSecs=10min
NotifyAccess=all
Restart=always
StartLimitInterval=5min
StartLimitBurst=4
StartLimitAction=reboot-force
[Install]
WantedBy=multi-user.target
그런 다음 다음 단계를 실행하여 타이머를 재설정하려고 했습니다.
export NOTIFY_SOCKET=/run/systemd/notify
systemd-notify READY=1
그런 다음 get, set 명령을 MAINPID
사용 하고 다음 을 실행하여 타이머를 재설정하려고 시도했습니다.systemctl status
MAINPID
systemd-notify MAINPID=$PID
systemd-notify WATCHDOG=1
이 설정의 모든 조합을 시도했지만 타이머를 재설정하는 데 아무것도 작동하지 않습니다. 변경 type=notify
하고 실행 해 보았지만 systemd-notify "WATCHDOG=1"
아무 것도 작동하지 않는 것 같습니다.
이 스크립트의 문제를 어떻게 해결할 수 있나요?
답변1
이렇게 하면 소프트웨어 감시 기능을 구현할 수 있습니다. 이렇게함으로써.
#include <systemd/sd-daemon.h>
sd_notify(0,"READY=1"); //in my constructor
sd_notify(0,"WATCHDOG=1"); // in my timer every 10 seconds.