항상 작동하는 Linux 명령이 있습니까? 오류 코드와 함께 종료되면 프로그램을 다시 시작하십시오.

항상 작동하는 Linux 명령이 있습니까? 오류 코드와 함께 종료되면 프로그램을 다시 시작하십시오.

나는 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

관련 정보