원격 로그아웃

원격 로그아웃

어제 저는 동료의 컴퓨터에서 작업을 하고 있었고 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

관련 정보