昨日、私は同僚のコンピュータで作業していたので、SSHを使用して私のクラスタアカウントにログインしましたが、セッションを開いたまま家に帰りました。
彼が私の前にセッションを終了したかどうかはわかりません。
マイコンピュータで、クラスタ内の開いているすべてのセッションをログアウト(終了)する必要があります。
開いているすべてのセッションからログアウトする方法は?
メモ: パスワードを変更すると役に立ちますが、パスワードを変更することはできません。
答え1
who -u
ログインしたユーザーのリストとシェルセッションのPIDを提供するコマンドを使用できます。
root@server:/# who -u
root - pts/0 2017-08-08 15:52 00:08 21934 (192.168.5.33)
root - pts/1 2017-08-08 16:07 . 31669 (192.168.5.33)
その後、それに応じてシェルセッションを終了します(あなたの場合はユーザーに属するセッション)。
root@server:/# kill 21934 31669
シェルを終了すると、親 SSH セッションも終了します。
答え2
まず、プロセスが実行されているコンピュータに接続する必要があります。 SSHを使用してください。
あなたは送ることができますシグナルそれに。あなたの場合、この操作の正しい信号は次のとおりです。ため息をつく。この信号は、端末が消えると自動的に送信されます(語源的には、モデムは時間ウォン戻る)。
このコンピュータのすべてのセッションを閉じるには、すべてのプロセスにSIGHUPを送信します。あなたはこれを行うことができます
kill -HUP -1
-1
「すべてのプロセス」を意味します。他のユーザーのプロセスは終了できないため、プロセスは終了します。
特定のプロセスのみを終了するには、次のコマンドを実行してアカウントで実行されているすべてのプロセスを一覧表示できます。
ps -u $(id -u) -ww
終了するプロセスを決定したら、この列の値を慎重にコピーしてくださいPID
。たとえば、PID 123 および 125 を終了するには、次のようにします。
kill -HUP 123 125
プロセスが SIGHUP に応答しない場合、SIGKILL が送信されます。 SIGHUPは親切に要求しますが、SIGKILLはプロセスに機会を与えません。
kill -KILL 123 125