듣고 있는 메인 프로세스가 아직 존재하는지 확인하고 싶습니다 ssh.sock
. 현재 반환된 종료 코드가 ssh -S ssh.sock -O check <my-server>
0인지 확인하고 있지만 이것이 이 문제를 처리하는 올바른 방법인지 확실하지 않으며 어떤 문서도 찾을 수 없습니다. ServerAliveInterval=20
연결이 실패하면 죽도록 마스터 프로세스가 있어야 합니다 . 반환 코드가 0이 아니지만 프로세스 자체가 여전히 활성 상태인 경우가 있습니까?
답변1
이를 시도하는 가장 쉬운 방법은 프로세스를 시작하고( ssh -MS ssh.sock <my-server>
) 소켓을 삭제한 후 어떻게 작동하는지 시험해 보는 것입니다. 업무와 연결:
$ ssh -S ssh.sock -O check <my-server>
Master running (pid=24314)
$ echo $?
0
소켓이 없으면 다음과 같은 결과가 나타납니다.
$ ssh -S ssh.sock -O check <my-server>
Control socket connect(ssh.sock): No such file or directory
$echo $?
255
나는 반환 코드를 처리하는 것이 올바른 접근 방식이라고 생각합니다.
반환 코드가 0이 아니지만 프로세스 자체가 여전히 활성 상태인 경우가 있습니까?
이전 예제와 마찬가지로 어떤 이유로 소켓이 삭제되면 연결은 여전히 활성 상태이지만 "외부"에서 이를 검사하거나 새 세션을 연결할 수 없습니다.