추가 읽기

추가 읽기

프로그래밍 방식으로 서비스 상태를 확인하는 코드를 작성하려고 하지만 서비스 이름의 오타에도 강력합니다. 제 생각에는 합리적인 프로그램은 다음과 같은 동작과 의미를 가져야 합니다.

  • 단위 이름을 인수로 사용합니다.
  • 장치가 발견되면 서비스 상태를 인쇄하고 상태 0(예: 활성, 비활성 등)으로 종료됩니다.
  • 단위가 다음과 같은 경우아니요발견/로드된 경우 오류를 인쇄하고 0이 아닌 상태로 종료됩니다.

특히 다음은 이 요구 사항을 충족하지 않습니다.

  • systemctl is-active servicename(장치가 활성화되지 않은 경우 0이 아닌 반환 상태로 종료되고, servicename이 로드되지 않은 경우에도 동일하게 동작합니다)
  • systemctl is-failed servicename(위와 비슷한 동작)
  • systemctl show servicename -pActiveState(servicename이 로드되지 않은 경우 종료 상태는 0입니다)

이것이 가장 가까운 것 같지만 systemctl show servicename -pLoadState -pActiveState 오타가 있는지 확인하기 위해 LoadState 문자열을 구문 분석해야 하는데 이는 이 간단한 작업에 필요한 것보다 더 복잡해 보입니다.

어떤 제안이 있으십니까?

답변1

어떤 제안이 있으십니까?

시스템화된 사람들은 2014년부터 여전히 존재하는 버그를 수정하도록 권장됩니다.

매뉴얼 systemctl에는 systemd에서 호출되는 적절한 LSB 버전 3 종료 상태가 문서화되어 EXIT_PROGRAM_OR_SERVICES_STATUS_UNKNOWN있으며 이 종료 상태는 다음과 같습니다.심지어 사용systemctl status존재하지 않는 서비스 의 경우 존재하지만 실행되지 않는 서비스와 구별합니다.

그러나 사용되지 않습니다 systemctl is-active.

추가 읽기

관련 정보