종료 중에 sshd가 마지막 서비스를 중지시키는 방법은 무엇입니까?


8

reboot명령을 실행할 때 SSH 연결이 CentOS 7에서 즉시 닫히는 것을 알았습니다. 이는 여전히 Ping 할 수 있으므로 서버가 재부팅 되었음을 의미하지 않습니다.

systemd가 sshd를 너무 일찍 죽이고있는 것 같습니다. 때로는 서비스가 중단되거나 느려질 수 있으며 서버가 가동 되어도 더 이상 문제가 있는지 확인하기 위해 로그인 할 수 없습니다.

다른 모든 서비스가 다운 된 후에 만 ​​sshd를 죽 이도록 systemd에 지시하는 방법이 있습니까?


8
귀하의 질문에 대한 답변은 아니지만 도움이되지 않는 알림 : 모든 프로덕션 서버에는 KVM, 원격 액세스 카드 또는 직렬 케이블 액세스 권한이 있어야합니다. (셧다운이 멈추는 곳에 따라, 심지어는 쓸모가 없을 수도 있습니다)
Andrew B

4
쉽지 않습니다. systemd는 시작 및 종료와 매우 유사합니다. ssh가 즉시 종료 될뿐만 아니라 중단 된 서비스를 포함하여 다른 많은 서비스도 있습니다. (원격) 콘솔을 사용하여 살펴 보거나 다음 부팅시 로그를 확인하십시오.
Michael Hampton

어쩌면 unix.stackexchange.com 의 좋은 사람들은 시스템 종료 프로세스를 수정하는 데 더 좋은 조언이 있습니까?
Austinian

그 systemd 일부 종료 순서에 대한 시작 구성에 따라 순서를 사용하는 것 같다 serverfault.com/questions/618612/...을 하지만 기준이 모호하고 긴, 나는 그들이 DefaultDependencies 방향을 가리키는 생각 - 그것은 말하는 것 같다가 필요한 경우 그 종료 할 때 서비스가 종료되기 전에 서비스가 종료되지 않습니다.
Mary

답변:


1

SSH가 마지막으로 종료되는 서비스인지 확인할 수 있더라도 네트워크 서비스가 중지 되 자마자 연결이 끊어지기 때문에 무의미합니다.

부팅하는 Linux 시스템은 모든 서비스를 사전 결정된 순서로 시작합니다. 먼저 가장 중요한 서비스, syslog, 방화벽, 네트워크 및 네트워크 액세스가 필요한 애플리케이션 (서버 웹, 서버 SSH 등)이 있습니다. 종료하면이 서비스는 역순으로 중지됩니다. 따라서 거의 즉시 SSH 연결이 끊어집니다.

원격 시스템을 여전히 핑 (ping) 할 수 있지만 SSH가 이미 작동 중지되어 있다는 사실은 정상입니다.


0

이것은 약간의 해킹이지만 다음과 같은 것을 추가하는 것은 어떻습니까?

ExecStopPre=sleep 60

/usr/lib/systemd/system/sshd.service? 의 "[서비스]"섹션으로 셧다운 순서를 보장 할 수는 없지만 더 긴 셧다운 시간을 견딜 수 있다면 쉘이 오래 활성화되어 다른 모든 것이 제대로 종료되었는지 확인하거나 빠르게 파킹 할 수 있습니다. 어쨌든이 단계에서 문제가있는 종료를 중단하기에는 너무 늦었으므로 이것이 일반적인 경우에 도움이되는지 확실하지 않지만 종료하는 동안 디버그하려는 반복적 인 문제가있는 상황에서는 유용 할 수 있습니다.


-5

나는 당신이 여기에서 무엇을했는지 확신하지 못하지만 가장 먼저 생각할 것은 프로세스를 다시하는 것입니다.

따라서 귀하의 경우 sshd 부모 프로세스를 다시 사용할 수 있습니다.

       renice PRIO_MAX -p pid-of-sshd

CPU 스케줄링의 우선 순위가 거의 실시간으로 변경되지만 다른 것은 없습니다.
Falcon Momot
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.