서비스 --status-all-> 열이 [? ], [+] 및 [-] 의미?


13

"service --status-all"명령을 실행하면 각 (실행 중) 서비스가 열 형식으로 나열됩니다. 첫 번째 열에는 [? 서비스 이름 앞에], [+] 또는 [-]. 이 칼럼은 무엇을 나타 냅니까? ?, +,-은 무슨 뜻입니까?

간단한 질문이라면 죄송합니다. 여기에 와서 물어보기 전에 ~ 30 분 동안 온라인으로 검색했습니다.

나는 이것을 발견했다 : service --status-all의 기호는 무엇을 의미합니까? 여기서 "정답"은 "종료 상태가 각각 0인지 아닌지에 따라 [+] 또는 [-]를 그립니다."입니다.

그래서 새로운 질문은 상태 0과 0이 아닌 것 (!?!?!)이 무엇을 의미하는지 생각합니다.

답변:


12

글쎄, 그것들은 종료 코드 일뿐입니다. 무언가 실행 한 후에는 8 비트 정수 (0-255)를 반환하여 종료 방법 을 나타낼 있습니다.

  • 0 (아무것도 반환되지 않으면 암시 됨)은 응용 프로그램이해야 할 일이 끝났고 자연스럽게 종료 된 것을 의미합니다.
  • 0이 아닌 코드 (1-255)는 응용 프로그램이 원하는 모든 것을 의미 할 수 있습니다. 맨 페이지 ( man <command>)는 일반적으로 이러한 코드의 의미를 보여줍니다.

질문의 관점에서, 그것을 다시 생각하지 마십시오 :

  • + 실행 중임을 의미합니다.
  • -그렇지 않은 경우 ( 충돌 되었을 수 있음-시작하지 않았을 수 있음) 및
  • ?이없는 서비스를 의미 status명령을, 그래서 서비스의 명령이 무엇을 무엇을 해결할 수있는 방법은 없습니다.

1
나는 당신의 대답에 전적으로 동의하지만 (+1) SSH 에서이 명령을 실행할 때 왜 sudo service --status-all 2>&1 | grep ssh출력을 이해할 수 [ - ] ssh없습니까? 아니면 매력처럼 작동 할 때 sudo service --status-all 2>&1 | grep lightdm출력 [ ? ] lightdm되는 이유 sudo service lightdm status는 무엇입니까?
Radu Rădeanu

@ RaduRădeanu 추측으로는, 레거시 /etc/init.d문제 일 수 있습니다 . 직렬로 업그레이드 된 컴퓨터에서 /etc/init.d/ssh status; echo $?0이 아닌 값 (나쁨, 실행 중이 아님)을 initctl list표시하고 SSH를 표시하지 않습니다. 14.04 상자에 SSH initctrl 표시되지만 service여전히 상태를 읽을 수 없습니다. 또한 initctrlUpstart 에서 작동하며의 service일부 임을 기억하십시오 sysvinit-utils. 가장 명확한 그림은 아니지만 몇 가지 단점 을 설명 하는 데 도움이 될 것이라고 생각합니다 . systemd로 이동하면 모든 것이 사라질 것입니다. D :
Oli

부정적인 종료 코드도 반환 될 수 있다고 생각 했습니까? 아니면 서비스 이외의 스크립트에만 해당됩니까?
saiarcot895
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.