시스템 출력에서 ​​"상태=10/n/a"는 무엇을 의미합니까?

시스템 출력에서 ​​"상태=10/n/a"는 무엇을 의미합니까?

Amazon Linux 2에서 애플리케이션을 서비스로 관리할 수 .service있도록 파일 을 개발 중입니다 . systemd하지만 을 입력하면 systemctl start my-new-service로그에 다음 오류가 보고됩니다.

Mar 24 hh:mm:ss the.host.name systemd[1]: my-new-service.service: main process exited, code=exited, status=10/n/a  

status=10/n/a이 오류 메시지는 무엇을 의미합니까?

다양한 가능한 상태 코드를 해석하는 방법을 설명하고, 이 포럼에 대한 요약이 너무 긴 경우 전체 설명에 대한 링크를 제공하십시오.

답변1

이 메시지는 파일 .service에 의해 시작된 애플리케이션이 ExecStart=종료되었으며 종료 시 반환 코드가 10으로 설정되었음을 의미합니다.

결과 코드에 대한 단일 통합 표준은 없습니다(여러 부분 표준 및 규칙이 있지만). 따라서 코드 10이 무엇을 의미하는지 알아내는 유일한 방법은 해당 특정 애플리케이션에 대한 문서나 해당 소스 코드를 읽는 것입니다. 문서에서는 이를 지정하지 않습니다.

따라서 systemd는 코드 10이 무엇을 의미하는지 모르므로 n/a를 추가하여 systemd에 사용 가능한 구두 설명이 없음을 나타냅니다. 문제가 있는 앱이 무엇인지 알려주시지 않아 결과 코드 10으로 더 이상 찾아볼 수 없습니다.

문서 systemd에서는여러 가지 결과 코드 규칙 테이블이 있습니다. 결론적으로:

  • C 라이브러리는 기본적으로 정상에 대해 0을 정의하고 실패에 대해 1(또는 0이 아닌 값)을 정의합니다.
  • 이것Linux 표준 라이브러리(LSB)에는 다음과 같은 정의가 있습니다.코드 2...7의 경우 서비스로 사용하도록 설계된 것(또는 원래 SysVinit 스타일 서비스 시작 스크립트용)
  • LSB 사양은 코드 200 이상이 구현별로 다르므로 systemd자체 생성 오류에 대한 해당 범위의 코드 집합을 정의함을 나타냅니다 systemd.

  • BSD 운영 체제는 64..78 범위의 공통 종료 코드 세트를 정의합니다. /usr/include/sysexits.hC 개발 패키지가 시스템에 설치된 경우 이러한 코드의 정의는 일반적으로 Linux 시스템의 파일에서도 사용할 수 있습니다.

그러나 이들 중 어느 것도 Code 10을 언급하지 않으므로 문제의 응용 프로그램을 알지 못하면 추측할 수 없습니다.

답변2

10기본 프로세스의 반환 값입니다. 통과관습0이 아닌 모든 종료 코드는 실패로 간주되며, 여기서 숫자는 무엇이 잘못되었는지 이상적으로 나타내야 합니다.

n/a대표하다해당되지 않거나 사용 가능하지 않음(보다.https://en.wikipedia.org/wiki/N/a), 이는 기호 이름이 없음을 의미합니다.종료 코드10이 정의되어 있으므로 무엇이 잘못되었는지 나타내지 않습니다.

즉, 문제가 발생했습니다(또는 스크립트/프로그램이 10을 잘못 반환했습니다).

관련 정보