나는 kill -HUP 명령이 실행될 때까지 영원히 작동해야 하는 프로그램을 가지고 있습니다. 그러나 때때로 프로그램이 오류 코드와 함께 종료되거나 과도한 메모리 사용으로 인해 운영 체제에 의해 종료될 수 있습니다.
명령을 모니터링하고 종료 시 다시 시작하는 표준 Linux 명령이 있습니까?
이 같은:forever my-command -with some parameters
이는 bash 스크립트를 통해 수행할 수 있습니다.
#!/bin/bash
while true
do
my-command -with some parameters
done
, 하지만 스크립트를 직접 작성하는 것보다 표준 항목을 사용하는 것이 더 나을 것입니다.
답변1
이것은 종료될 때까지 명령을 다시 시작하는 SystemD 장치 파일입니다 SIGHUP
. 프로그램이 성공적인 종료 코드로 종료되도록 허용된 경우에 사용됩니다 Restart=on-failure
.
[Unit]
Description=A program
[Service]
Type=simple
ExecStart=/path/to/my-command -with some parameters
Restart=always
# Restart=on-failure
RestartPreventExitStatus=SIGHUP