문제

저는 Ubuntu 9.04 사용자입니다. 다음과 같은 화면 세션 목록이 주어지면 :

9076.pts-30.moe (09/27/2009 11:30:08 PM)    (Attached)
8778.pts-24.moe (09/27/2009 11:29:46 PM)    (Detached)
8674.pts-0.moe  (09/27/2009 11:29:25 PM)    (Attached)
22649.pts-28.moe    (09/27/2009 11:51:46 AM)    (Detached)
22543.pts-24.moe    (09/27/2009 11:50:56 AM)    (Detached)
22228.pts-16.moe    (09/27/2009 11:49:59 AM)    (Detached)

시간 기준에 따라 여러 화면을 어떻게 마감합니까? 예를 들어, 모든 화면은 오후 12시 이전에 시작되었습니다. 나는 일반적으로 다음을 입력 할 것입니다.

    screen -dr 22649.pts-28.moe
    exit
    ...

그리고 각각을 수동으로 닫지 만 이것은 지루합니다. 미리 감사드립니다.

도움이 되었습니까?

해결책

-X 매개 변수를 사용하여 화면에 명령을 보낼 수 있습니다. 따라서 "screen -s 22649.pts -28.moe -x quit"으로 명령 줄에서 화면을 닫을 수 있습니다.

시간별로 화면을 선택하려면 시간을 비교하려면 스크립트를 실행해야한다고 생각합니다.

개인적으로 Python에서 os.popen () 및 time.strptime ()을 사용합니다.

다른 팁

분리 된 모든 화면을 죽이는 방법은 다음과 같습니다.

screen -ls | grep Detached | awk -F" " '{print $1}' | xargs -I{} screen -X -S {} kill

모든 화면을 강제로 죽이고 싶다면 변경하십시오. grep Detached 위로 grep tached. 최소한 모든 타인을 위해 일합니다!

시간 기준의 경우 다음과 같이 시작할 수 있습니다.

screen -ls | grep Detached | awk -F " " '{print $2,$3,$4","$1}'

이것은 다음과 같은 것을 인쇄합니다.

(01/03/2012 02:10:42 AM),4504.test2
(01/03/2012 02:10:12 AM),4445.test1
(01/03/2012 02:02:58 AM),4333.test0

첫 번째 그룹이 타임 스탬프이고 쉼표로 분리 된 곳은 pid.name입니다.

따라서 사용/파이프를 사용할 수 있습니다 awk (또는 awk -F"," '{print $1}' 타임 스탬프를 정확히 괄호 안에서만 추출하려면 괄호 안에 시간을 구문 분석합니다. screen -ls 항상 가장 빠른 화면을 마지막으로 나열합니다!

나는 시간 기준 필터링을 직접 필터링하는 방법을 알아 내지 않았다. 내가 할 수 있다면 미래에 이것을 편집 할 것이다 .. 행운을 빕니다.

도트 앞의 숫자 (22649 당신의 예에서) 화면 프로세스의 PID가 있습니다. 그냥 죽여 (kill 22649)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top