스크린 세션에서 어떤 명령이 실행되고 있는지 알아보세요.

스크린 세션에서 어떤 명령이 실행되고 있는지 알아보세요.

나중에 확인할 수 있도록 화면 내에서 작업을 실행 중인 상태로 두는 경우가 많지만, 때로는 화면 내에서 어떤 명령이 실행되고 있는지 확인해야 할 때도 있습니다. 일반적으로 다음과 같은 일종의 PHP 스크립트입니다.

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

어떤 화면에서 어떤 명령을 실행하고 있는지 기록하지 않지만 프로세스를 종료하지 않고 화면에서 실행 중인 명령을 검사하여 진행 상황을 볼 수 있기를 원합니다.

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

답변1

나는 최근에 이것을해야했습니다. 스택 오버플로에서 나는 어떻게 대답했는지화면에서 실행 중인 프로세스의 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를 사용하여 알려진 PID의 PPID(상위 PID)를 검색하여 foo_Monitor해당 세션에서 실행 중인 세션의 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

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

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

이제 우리가 원하는 프로세스는저것PID. 명령을 중첩하면 됩니다. 이번에는 플래그를 사용하여 -v프로세스 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}')

답변2

screen -S <your-fancy-name>실행되는 명령에 따라 스크린 세션에 의미 있는 이름을 지정하려면 어떻게 해야 합니까 ? 이름이 나열되어 screen -ls복구 세션에 사용됩니다 screen -r <your-fancy-name>.

다음을 추가하도록 편집되었습니다.

지난번에 그것이 내 관심을 끌었기 때문입니다. 귀하의 필요에 맞는 기능을 추가하여 tmux정확히 동일한 기능 세트(더 많지는 않지만)를 제공합니다 . screenFAQ에서: "tmux는 이스케이프 시퀀스를 사용하여 심각한 해킹 없이 실행 중인 응용 프로그램에 대한 창 이름을 자동으로 바꾸는 것을 지원합니다. 기본적으로 켜져 있습니다."

관련 정보