하위 프로세스의 활성 핑을 허용하기 위해 systemd WatchDog을 사용하는 방법은 무엇입니까?

하위 프로세스의 활성 핑을 허용하기 위해 systemd WatchDog을 사용하는 방법은 무엇입니까?

여러 프로세스를 파이프하여 서비스로 실행하는 bash 스크립트를 구성했습니다. 이것은 잘 작동하지만 이제 이를 사용하여 WatchdogSec상태가 여전히 괜찮은지 모니터링하고 그렇지 않은 경우 모든 하위 프로세스를 다시 시작하고 싶습니다.

application-C에는 환경 변수를 기반으로 하는 알림 논리가 있습니다 WATCHDOG_USEC. 애플리케이션을 호출하면 제대로 작동하지만 스크립트의 일부이고 마지막 프로세스인 경우에는 작동하지 않습니다.

애플리케이션 C가 일부 데이터를 수신하지 않으면 비정상으로 간주되므로 모든 항목을 종료하고 다시 시작해야 한다는 논리가 어느 정도 있습니다.

현재 서비스 데몬은 30초마다 모든 프로세스를 다시 시작하며 신호는 스크립트의 일부일 때 프로세스 내에서 작동하지 않는 것 같습니다.

워치독은 bash 쉘 프로세스의 ping만 허용할 수 있습니다.

어떻게든 작동하게 할 수 있나요?

[Unit]
Description=My script
After=multi-user.target

[Service]
WorkingDirectory=/home/pi/src/
ExecStart=/bin/bash myscript.sh
WatchdogSec=30s
Restart=on-failure

[Install]
WantedBy=multi-user.target

스크립트:

application-a | application-b |application-c

관련 정보