ポート転送用に特別に開かれたSSHセッションがあるため、-N
コマンドラインにまたはあります。-NT
このセッションを「正常に終了」するように指示する正しい方法が何であるか疑問に思います。 cc( SIGINT
) をクリックするとクライアントが終了することがわかりますが、終了コードは 0 ではありません。 「改行文字の後のチルダ」エスケープシーケンスを試しましたが、認識されないようです。コンソールはチルダとドットのみを表示し、ssh(1)の動作は観察されません。
また、終了する方法も見つかりませんssh -Nt
。別のターミナルセッションを開き、同様の作業を行う必要がありますkillall ssh
。
OpenSSH 8.6p1を実行しています。
答え1
killall ssh
SIGTERM
非常に標準的な - 通常、Unix / Linuxのアプリケーションにシャットダウンを指示する方法であるシグナルを送信します。
kill -l
SIGQUIT
たとえば、SIGINT
次のようなさまざまなオプションがあります。
詳しくはこのディスカッションをご覧ください。https://stackoverflow.com/questions/4042201/how-does-sigint-relate-to-the-other-termination-signals-such-as-sigterm-sigquit
または正規 glibc ドキュメント:https://www.gnu.org/software/libc/manual/html_node/Termination-Signals.html
$ ssh -N localhost; echo $?
birdie@localhost's password:
0
(他の端末から)
$ killall ssh
信号処理はアプリケーションごとに異なるため、最終的にソースコードを参照する必要があります。明らかな理由から、SIGKILL
合計SIGSTOP
信号のみを処理することはできません。