스크린 세션 내에서 어떤 명령이 실행 중인지 확인


10

나중에 확인할 수 있도록 화면 내에서 작업을 실행하는 경우가 종종 있지만 화면에서 실행중인 명령을 확인해야하는 경우가 있습니다. 일반적으로 다음과 같은 PHP 스크립트입니다.

screen -d -m nice -n -10 php -f convertThread.php start=10000

어떤 화면이 어떤 명령을 실행하고 있는지 기록하지 않지만 프로세스를 종료하지 않고 명령이 실행되는 과정을 확인하여 진행 상황을 느낄 수 있기를 원합니다.

화면 도움말 페이지에 이에 대한 옵션이 표시되지 않습니다.

답변:


18

나는 최근에 이것을해야했다. 스택 오버플로 에서 화면에서 실행중인 프로세스의 PID찾는 방법에 대답 했습니다 . PID가 있으면 ps명령을 얻는 데 사용할 수 있습니다 . 다음은 귀하의 상황을 해결하기위한 추가 내용이 포함 된 답변의 내용입니다.

다음과 같이 스크린 세션의 PID를 얻을 수 있습니다.

$ screen -ls
There are screens on:
        1934.foo_Server         (01/25/15 15:26:01)     (Detached)
        1876.foo_Webserver      (01/25/15 15:25:37)     (Detached)
        1814.foo_Monitor        (01/25/15 15:25:13)     (Detached)
3 Sockets in /var/run/screen/S-ubuntu.

foo_Monitor화면 세션 에서 Bash에서 실행되는 프로그램의 PID를 원한다고 가정 해 봅시다 . 알려진 PID에 대해 PPID (부모 PID)를 검색하여 실행중인 세션 foo_Monitor의 PID를 가져 오려면 화면 세션 의 PID를 사용하십시오 bash.

$ ps -el | grep 1814 | grep bash
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
0 S  1000  1815  1814  0  80   0 -  5520 wait   pts/1    00:00:00 bash

이제 bash세션 의 PID 만 얻으십시오 .

$ ps -el | grep 1814 | grep bash | awk '{print $4}'
1815

이제 우리는 PID로 프로세스를 원합니다 . 명령을 중첩하면 이번에는 -v플래그를 사용하여 bash grep bash아닌 프로세스를 가져옵니다 .

$ echo $(ps -el | grep $(ps -el | grep 1814 | grep bash | awk '{print $4}') | grep -v bash | awk '{print $4}')
23869

이 PID를 사용하여 명령을 찾을 수 있습니다 (두 번째 줄의 끝을보십시오).

$ ps u -p 23869
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
dotanco+ 18345 12.1 20.1 5258484 3307860 ?     Sl   Feb02 1147:09 /usr/lib/foo

모두 합치십시오.

$ ps u -p $(ps -el | grep $(ps -el | grep SCREEN_SESSION_PID | grep bash | awk '{print $4}') | grep -v bash | awk '{print $4}')

아, 영리하다! 나는 그것을 좋아한다! 이 질문에 직접 답변하므로이 답변을 수락하겠습니다. 감사합니다! 죄송합니다 @Ghanima (: '
Austin Burk

7

screen -S <your-fancy-name>실행하는 명령에 따라 스크린 세션에 의미있는 이름을 부여하는 데 사용 하는 것은 어떻습니까? 에 의해 이름이 나열되고 screen -ls세션을 재개하는 데 사용됩니다 screen -r <your-fancy-name>.

추가하려면 다음을 편집하십시오.

며칠 전에 저의 관심을 끌었습니다. (더 많지 않은 경우)와 tmux동일한 기능 세트를 screen제공하며 필요에 맞는 기능이 제공됩니다. FAQ : "tmux는 이스케이프 시퀀스를 사용하여 심한 해킹 없이도 실행중인 응용 프로그램으로 자동으로 창 이름 바꾸기를 지원합니다. 기본적으로 설정되어 있습니다."

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.