![항상 작동하는 Linux 명령이 있습니까? 오류 코드와 함께 종료되면 프로그램을 다시 시작하십시오.](https://linux55.com/image/175498/%ED%95%AD%EC%83%81%20%EC%9E%91%EB%8F%99%ED%95%98%EB%8A%94%20Linux%20%EB%AA%85%EB%A0%B9%EC%9D%B4%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F%20%EC%98%A4%EB%A5%98%20%EC%BD%94%EB%93%9C%EC%99%80%20%ED%95%A8%EA%BB%98%20%EC%A2%85%EB%A3%8C%EB%90%98%EB%A9%B4%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%9D%84%20%EB%8B%A4%EC%8B%9C%20%EC%8B%9C%EC%9E%91%ED%95%98%EC%8B%AD%EC%8B%9C%EC%98%A4..png)
나는 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