매개변수 없이 기본 동작을 시뮬레이션하고 있습니다 ps
.
선택 기준 중 하나는 현재 쉘과 동일한 터미널을 제어하는 프로세스를 찾는 것입니다.
또 다른 선택 조건은 euid가 현재 사용자인 프로세스를 찾는 것입니다.
따라서 사용자 선택과 터미널 선택을 논리적으로 AND해야 합니다.
$ ps -u t -t /dev/pts/4 -o pid,tname,time,ucmd
$ ps -u t -t pts/4 -o pid,tname,time,ucmd
$ ps -u t -t /dev/tty -o pid,tname,time,ucmd
나는 현재 쉘의 제어 터미널이 이라는 것을 알고 있습니다 /dev/pts/4
. 그러나 이들 모두는 다른 제어 터미널이 있거나 없는 프로세스를 제공합니다. 감사해요.
답변1
프로세스 선택은 통과 -u
및 누적 됩니다. 사용자로 실행 중인 모든 프로세스 와 가장 중요한 것은 제어 터미널 또는 가 있는 모든 프로세스를 -t
선택합니다 . 특정 제어 터미널에 대한 프로세스를 보려면 다음을 단독으로 사용하십시오.t
/dev/pts/4
/dev/tty
-t
ps -t pts/4 -o pid,tname,time,ucmd
~처럼POSIX에 의해 지정됨, 프로세스 선택 옵션이 추가됩니다.
와는 별개로-에프,-엘,-N 목록, 그리고-영형 체재, 표시된 모든 옵션은 프로세스 선택을 위한 것입니다. 아무것도 지정하지 않으면 기본 목록이 무시되고메모모든 선택 기준 옵션의 OR로 표시되는 프로세스를 선택해야 합니다.
조건을 결합하고 모든 조건과 일치하는 프로세스만 나열하려면 다음을 사용할 수 있습니다 pgrep
.
ps -p $(pgrep -d, -u t -t pts/4) -o pid,tname,time,ucmd