LoginSignup
1
3

More than 5 years have passed since last update.

sshでコマンドを実行する時はプロセスの状況とシグナルの流れに注意する

Posted at

ssh+commandはプロクシとして使う時に非常に便利。
ssh ... nc ...とか。
ところが不適切な設定でこのコマンドを多様するとリモートに大量のプロセスやsshセッションが残る事がある。

例えば、CTRL+Cでsshにシグナルを流して殺してもリモートのプロセスにはシグナルは飛ばないので、リモートのプロセスは走り続ける。
この場合何らかの方法で自発的にリモートプロセスに死んでもらう必要がある。nc -qとか。

ssh -tでttyセッションを開いた場合、CTRL+CするとConnection to ... Closed.と表示される。
リモートのシェルを通してリモートのプロセスにシグナルが飛び、子プロセスが死んだのでリモート側からsshセッションを閉じるため。
この場合、逆にキー入力でローカルのプロセスにシグナルを送る事ができない。

何がしたいかによって対処の仕方は変わるので、sshでコマンドを実行する時はプロセスがどこで走っているのか、親子関係、シグナルの流れに注意する事が大事。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3