Jessie로 업그레이드한 후 서비스 제어에서 결과가 반환되지 않습니다.

Jessie로 업그레이드한 후 서비스 제어에서 결과가 반환되지 않습니다.

실제로 데비안은 아니지만 Raspbian Wheezy에서 Raspbian Jessie까지입니다. 공식 Raspbian 포럼에 있는 일부 명령을 사용하여 업그레이드했습니다.

고양이/etc/debian_version = 8.0.

문제는 서비스를 다시 시작해도 결과가 표시되지 않는다는 것입니다.

업그레이드 전(헐떡임):

# service tor restart
[ok] cccc
[ok] ddd
# _

업그레이드 후(Jesse):

# service tor restart
# _

모든 결과는 /var/log/syslog에 기록됩니다... 이 항목을 어떻게 복원할 수 있나요? 로그에 기록하는 것이 아니라 실제 결과를 보고 싶습니다.

답변1

service이제는 모든 것이 잘되면 조용해지는 systemd에 의해 처리됩니다. 이것을 바꿀 수 있는 방법은 없는 것 같습니다. 레나르트TODO 항목을 추가했습니다.상세 모드를 추가하면 원하는 것과 유사한 동작이 복원되지만 3년 후에도 여전히 그렇습니다.할 일 목록에!

언제든지 다음과 같은 작업을 수행하도록 쉘 함수를 정의할 수 있습니다.

service tor restart && echo '[OK]' || echo '[Failed]'

( tor로 바꾸고 $1명령에서 원하는 메시지로 대체 echo) 그러나 여러 명령을 실행하는 장치에 대한 세부 정보는 제공되지 않습니다.

systemctl status tor

에서는 해당 유닛의 자세한 상태를 보여주므로 start또는 와 결합하는 것도 다른 옵션입니다 restart.

답변2

많은 서비스 오류, 일부 서비스는 서비스가 시작되지 않아도 항상 성공을 반환합니다. 왜냐하면 systemd가 서비스 자체 대신 일종의 서비스 관리자를 시작하기 때문입니다. 그리고 서비스 상태를 여러 번 신뢰하지 못하는 결과를 얻습니다. "시작 OK", 서비스가 실제로 실행되고 있지 않으며 피드백도 없습니다! 그래서 문제는 아직 해결되지 않았습니다! 다만, Journal -xe 를 실행시키면 이렇게 하는 것보다는 훨씬 낫지만, 매번 실행해서 기억해야 하기 때문에 부족합니다. – @루치아노 안드레스 마티니

"결과 없음"은 작업이 성공했음을 의미합니다. 이는 UNIX 기본 설정입니다. 예를 들어, cpor 명령이 작동하는 방식은 다음과 같습니다.rm

서비스가 잘못 작성된 경우 성공을 반환한 다음 즉시 실패할 수 있습니다(예: 잘못된 구성을 읽는 경우). 이것은 서비스의 버그입니다! sysvinit 스크립트가 비슷하게 동작한다면, 똑같은 문제가 발생할 것입니다! systemd이 문제를 해결할 수 있는 방법이 없습니다 .

장치가 실패하면 데몬의 마지막 10줄만 보는 요령이 있습니다. systemctl status루트 사용자(예: sudo)로 실행합니다. 또는 사용자를 systemd-journal그룹 또는 adm.

마지막 10개 이상의 행이 필요한 경우 journalctl -u tor -b현재 시작의 모든 것을 의미하는 을 사용합니다. 또는 현재 부팅 프로세스 중에 여러 번 다시 시작하는 경우 journalctl -u tor --since=-1hour또는 간단히 --since=-1h.

장치가 부팅되지 않을 때 이것을 실행하는 systemctl것이 이미 권장되는 것 같습니다 . systemctl status(불행히도 systemctl은 권한 문제를 언급하지 않습니다.)

systemctl정말 추천도 합니다 journalctl -xe. 개인적으로 나는 이것이 도움이 되지 않는다고 생각한다. -x대부분의 경우 소음이 많이 추가됩니다. -e예를 들어 stdout/stderr 메시지 및 명시적으로 오류 메시지로 표시되지 않은 모든 메시지를 건너뜁니다. (죄송합니다. stderr 메시지도 건너뜁니다. 이 설정을 변경하는 것은 어색합니다. stdout을 사용하여 stderr 행을 재정렬할 수 있으며 이는 쉘 스크립트에 바람직하지 않을 수 있습니다.)


비슷한 사용자 불만이 있습니다systemd 이슈 트래커에서, 여기에는 다른 문제가 있는 서비스가 포함됩니다. (또는 그 중 하나가 다음과 같을 수도 있습니다.의도적으로긴 네트워크 시간 초과 후 "백그라운드에서" 실패했습니다. 다시 말하지만, 이것이 바로 서비스가 작성되는 방식이며, 사용자를 짜증나게 하려는 시스템이 아닙니다.)

관련 정보