서비스를 시작 또는 중지 한 후 systemd show 서비스 상태를 만들 수 있습니까?


8

init.d 스크립트가 수행하는 작업을 수행하도록 시스템을 시작하려고합니다. 수동으로 시작 또는 중지하라는 명령을받은 후 서비스 상태를 자동으로 표시합니다. 어떻게 든 가능합니까?

불행히도 systemd는 백그라운드에서 실행되기 때문에 바로 다시 팝업되며 상태를 표시하기 위해 두 번째 명령을 수행해야합니다. 시작 또는 중지가 작동했는지 또는 작동하지 않았을 수도 있습니다.

즉. 나는 노력하고 있습니다

service nginx status

내가 한 후 자동으로 실행

service nginx start

또는

service nginx restart

(또는 뇌 손상 시스템 systemctl start nginx.service)


1
"뇌 손상"명령을 사용합니다 (좋아요!). 그들은 실제로 모든 것이 잘되면 아무 것도 말하지 않지만 무언가가 실패하면 알려줍니다. 최소한 그것이 openSUSE 13.1에있는 방법입니다. 그들이 실패 할 때 그들이 "침묵"이라고 확신합니까? 시도 했습니까 systemctl start nginx.service && echo SUCCESS || echo failure?
Huygens

2
@Huygens는 systemd가 모든 실패를 감지 할 수 있다고 생각하지 않으며, 가장 확실한 자동 실패 또는 경고가있을 수 있습니다. 프로세스는 백그라운드에서 시작되고 systemd exit 제어는 init.d와 전혀 다르지 않습니다. PID 파일 작성과 일관되게 발생하는 것을 볼 수 있습니다. 수동 시작 또는 재시작 후 상태를 얻는 것은 systemd (및 내 질문의 포인트)에서 절대적으로 필요합니다.
ck_

설명 주셔서 감사합니다, 나는 여기서 뭔가를 배웠습니다! 그때이 질문에 대한 답변을 기대하고 있습니다!
Huygens

더 나은 시스템 구문과 달리 한 번에 여러 서비스에서 작업 할 수 없기 때문에 braindead 구문은 하나의 서비스입니다. systemctl stop service1 service2 service3
god

1
systemctl@Huygens가 제안한 것처럼 종료 상태를 확인할 때 여전히 동일한 불일치가 표시되면 문제는 nginx.service시작에 성공하지만 나중에 충돌 하는 것일 수 있습니다 . 저널 또는 Nginx 로그를 확인하십시오.
Amir

답변:


1

유스 케이스에는 내장 명령이 없으므로 선호하는 쉘 또는 간단한 스크립트 래퍼의 별명을 만들어야합니다.


0

시스템을보다 "자세한"형태로 만들려면에 다음 줄을 추가하거나 주석 해제 한 다음 /etc/systemd/journald.conf다시 부팅하십시오.

ForwardToConsole=yes
MaxLevelConsole=debug
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.