linux - 탈출 - 서버 screen




분리 된 화면 세션 종료 (8)

나는 분리 된 화면이 어딘가에서 배울 수 있다고 배웠다.

screen -X -S [당신이 죽이고 싶은 세션 #] kill

[세션 # 당신이 죽이고 싶어] 어디에서 얻을 수 있습니다

screen -ls.

그러나 이것은 효과가 없습니다. 뭐가 잘못 됐니? 올바른 방법은 무엇입니까?


"kill"은 하나의 화면 창만 죽일 것입니다. 전체 세션을 " quit "하려면 quit 사용하십시오.

$ screen -X -S [session # you want to kill] quit

나를 위해 간단한

exit

공장. 이것은 화면 세션에서 온 것입니다.


또는 화면 세션에서 exit를 입력하기 만하면됩니다.

이렇게하면 화면에 의해 시작된 쉘 세션이 종료되어 사용자가있는 화면 세션을 효과적으로 종료합니다.

화면 세션 ID 등을 신경 쓰지 않아도됩니다.


분리 된 모든 화면 세션을 종료하려면 .bash_profile에 다음 함수를 포함하십시오.

killd () {
for session in $(screen -ls | grep -o '[0-9]\{5\}')
do
screen -S "${session}" -X quit;
done
}

그것을 실행하려면 killd 호출 killd


화면 세션이있는 장소로 이동하여 실행할 수 있습니다.

 screen -ls

그 결과

 There is a screen on:
         26727.pts-0.devxxx      (Attached)
 1 Socket in /tmp/uscreens/S-xxx. <------ this is where the session is.

그리고 그것을 제거하십시오 :

  1. cd /tmp/uscreens/S-xxx
  2. ls
  3. 26727.pts-0.devxxx
  4. rm 26727.pts-0.devxxx
  5. ls

uscreens 디렉토리에는 더이상 26727.pts-0.devxxx 파일이 없습니다. 이제 다음과 같이 입력하면됩니다.

screen -ls

그리고 당신은 다음을 얻어야합니다.

/ tmp / uscreens / S-xxx에 소켓이 없습니다.


~/.bashrc 에 이것을 추가하십시오 :

alias cleanscreen="screen -ls | tail -n +2 | head -n -2 | awk '{print $1}'| xargs -I{} screen -S {} -X quit"

그런 다음 클린 스크린을 사용하여 모든 스크린 세션을 청소하십시오.


== ISSUE THIS COMMAND
[[email protected] ~]$ screen -ls


== SCREEN RESPONDS
There are screens on:
        23487.pts-0.devxxx      (Detached)
        26727.pts-0.devxxx      (Attached)
2 Sockets in /tmp/uscreens/S-xxx.


== NOW KILL THE ONE YOU DONT WANT
[[email protected] ~]$ screen -X -S 23487.pts-0.devxxx kill


== WANT PROOF?
[[email protected] ~]$ screen -ls
There is a screen on:
        26727.pts-0.devxxx      (Attached)
1 Socket in /tmp/uscreens/S-xxx.

screen -wipe

모든 죽은 화면 세션을 정리해야합니다.





gnu-screen