실패한 시스템 서비스의 종료 코드 가져오기

실패한 시스템 서비스의 종료 코드 가져오기

실패한 시스템 서비스의 종료 코드를 얻는 방법은 무엇입니까?

service some_service status다음을 인쇄하세요:

 Active: failed (Result: exit-code)

그런데 그게 뭐죠 exit-code?

이러한 종료 ​​코드는 표준입니까, 아니면 서비스마다 다른 의미를 갖습니까?

답변1

systemctl status실제로 당신이 찾고 있는 것이 있습니다:

$ systemctl status openproject-web-1.service
● openproject-web-1.service
   Loaded: loaded (/etc/systemd/system/openproject-web-1.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Mon 2020-05-25 08:17:17 CEST; 1 day 4h ago
  Process: 969 ExecStart=/usr/bin/openproject run web (code=exited, status=203/EXEC)
 Main PID: 969 (code=exited, status=203/EXEC)

Main PID:당신은 아래에 무엇을 가지고 있는지 볼 수 있습니다 (code=exited, status=203/EXEC). 203은 종료 코드입니다.

종료 코드는 특정 응용 프로그램에 따라 다르지만 몇 가지 규칙이 있습니다. 0은 성공적인 종료를 나타내고, 1-255는 비정상 종료를 나타내고, 256+는 범위를 벗어났음을 나타냅니다. 이것POSIX 표준몇 가지 특별한 상황이 있습니다. 하지만 자세한 내용을 알아보려면 해당 애플리케이션의 설명서를 확인해야 합니다.

예를 들어,grep(1)설명하다:

...종료 상태는 행이 선택된 경우 0, 행이 선택되지 않은 경우 1, 오류가 발생한 경우 2입니다.

아래 JdePB에 설명된 대로 systemd는 200에서 242 범위의 일부 종료 코드를 설정할 수 있습니다. 위의 예에는 203실제 실행이 실패했음을 의미하는 종료 코드가 있습니다(파일을 찾을 수 없거나 파일이 실행 파일로 표시되지 않았을 수 있음).

관련 정보