アイドルSSHセッションを終了したい。このリモートサーバーは多くのユーザーが使用していますが、私が所有しているセッションのPIDをどのように識別できますか?
これを実行すると、who
ユーザー名でタグ付けされた SSH セッションのリストが表示されます。
$ who
me pts/0 2020-11-23 18:05 (tmux(id).%0)
me pts/1 2020-11-06 13:28 (<ip 1>)
someone pts/2 2020-11-09 09:36 (<ip 2>)
someone pts/3 2020-11-26 20:26 (<ip 2>)
...
を実行すると、pstree
セッションにユーザー名タグが付けられなくなります。
$ pstree -p | grep sshd
|-sshd(930)-+-sshd(3518)---sshd(3536)---python(5736)-+-{python}(5744)
| |-sshd(4285)---sshd(4308)
| |-sshd(5428)---sshd(5450)
...
ベストアンサー1
ルート以外では他のプロセスでは何もできないので、sshd
すべてのプロセスにシグナルを送信するだけでは危険ではありません。
pkill sshd
独自のプロセスに明示的に制限するには:
pkill -U "$USER" sshd
USER
または実行中のシェルで変数が使用されていない場合は、"$LOGNAME"
代わりに試して"$USER"
ください。
pkill -U "$(id -un)" sshd
このコマンドのマニュアルも参照してくださいpkill
。
一致するプロセスのプロセスIDのリストを取得するには、pgrep
代わりに使用してください。表示または一覧表示する場合にのみ、or withをpkill
使用してください。pkill
pgrep
-o
最も古いプロセス。