聞いているメインプロセスがまだ存在していることを確認したいと思いますssh.sock
。現在返された終了コードがssh -S ssh.sock -O check <my-server>
ゼロであることを確認していますが、これがこの問題を処理する正しい方法であるかどうかはわかりません。文書が見つかりません。ServerAliveInterval=20
接続が失敗した場合は死ぬマスタープロセスが必要です。戻りコードがゼロではありませんが、プロセス自体がまだアクティブな場合はありますか?
ベストアンサー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
私は戻りコードを処理するのが正しいアプローチだと思います。
戻りコードがゼロではありませんが、プロセス自体がまだアクティブな場合はありますか?
前の例と同様に、何らかの理由でソケットが削除された場合、接続はまだアクティブですが、「外部」でそれを確認したり、新しいセッションを接続したりすることはできません。