systemd 구문 변경 및 차이점

systemd 구문 변경 및 차이점

이러한 오류가 발생한 후:

nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: failed (Result: core-dump) since Mon 2022-09-26 22:17:21 UTC; 8h ago
       Docs: man:nginx(8)

실패하면 nginx를 모니터링하고 다시 시작해 보세요. 그러나 다른 출처에서는 다른 신타시를 제안합니다.

Restart=always
Restart=on-failure

선적 서류 비치시간제 노동자또는단위이 매개변수는 설명되지 않습니다. 이는 또한 기본 타이머가 무엇인지, 구체적으로 설정해야 하는지 여부에 대한 불확실성을 야기합니다.

파일 nginx.service은 디렉토리에 하나를 포함하고 다른 하나를 포함하도록 편집되었습니다 /usr/lib/systemd/system.
흥미롭게도 디렉터리에는 /lib/systemd/system동일한 파일이 있으며(두 파일 모두 별칭으로 표시되지 않았습니다. 디렉터리 별칭이 사용되고 있다고 가정합니까?) 한 파일의 변경 사항이 다른 파일에 반영됩니다.
모든 변경 사항은 다음에 의해 이루어집니다.systemctl daemon-reload

변경 사항으로 인해 nginx가 예상대로 다시 시작되지 않았습니다. 그러므로:

  • 이 두 신타시의 차이점은 무엇입니까?
  • 지정하지 않으면 기본적으로 적용되는 타이머는 무엇입니까?

답변1

모든 systemd 지시문에는 색인이 있습니다man systemd.directives;의 경우 Restart=결과는 다음과 같습니다.man systemd.service.

Restart=관리형 서비스가 종료될 때 어떤 일이 발생해야 하는지 결정합니다. on-failure신호 또는 관리 작업 시간 초과로 인해 0이 아닌 종료 코드로 종료되는 경우 다시 시작해야 함을 지정합니다. always모든 경우에 다시 시작해야 함을 지정합니다.

여기에는 모니터링 시간 초과가 없으며 프로세스가 종료되면 다시 시작됩니다. Watchdog을 사용하여 서비스를 구성할 수 있지만 이를 위해서는 관리형 서비스(Watchdog에 주기적으로 알려야 함)의 협력이 필요합니다.

관련 정보