실패한 시스템 서비스의 종료 코드를 얻는 방법은 무엇입니까?
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
실제 실행이 실패했음을 의미하는 종료 코드가 있습니다(파일을 찾을 수 없거나 파일이 실행 파일로 표시되지 않았을 수 있음).