Programing

Linux / Bash, ps -o를 사용하여 특정 이름으로 프로세스를 얻습니까?

lottogame 2020. 12. 15. 08:09
반응형

Linux / Bash, ps -o를 사용하여 특정 이름으로 프로세스를 얻습니까?


ps -o 명령을 사용하여 특정 이름과 일치하는 프로세스에 대한 특정 정보를 얻으려고합니다. 그러나 나는 이것에 대해 몇 가지 문제가 있습니다. 모든 프로세스를 얻기 위해 이것을 사용하려고 할 때, 정상 ps -ef이 반환 하는 것의 하위 집합을 반환합니다 (거의 동일한 수의 결과를 반환하지 않으므로 실행중인 모든 프로세스를 반환하지 않음)

ps -ef -o pid,time,comm

나는 이와 같은 것을 시도하고 싶지만 (아래) ps -o를 통합하여 특정 정보를 얻습니다 (PID 만).

ps -ef |grep `whoami`| grep firefox-bin

이 작업을 올바르게 수행하는 방법에 대한 조언을 주시면 감사하겠습니다.


이것은 이름으로 프로세스의 PID를 얻을 것입니다.

pidof name

그런 다음 자세한 내용을 보려면 ps에 다시 연결할 수 있습니다.

ps -p $(pidof name)

이것은 약간 오래되었지만 원하는 것은 ps -o pid -C PROCESS_NAME입니다. 예를 들면 다음과 같습니다.

ps -o pid -C bash

편집 : 기대하는 출력의 종류에 pgrep따라 더 우아해질 것입니다. 내가 아는 한 이것은 Linux 전용이며 위와 유사한 결과를 초래합니다. 예를 들면 :

pgrep bash

ps -fC PROCESSNAME

ps와 grep은 위험한 조합입니다. grep은 각 줄의 모든 항목을 일치 시키려고합니다 (따라서 너무 일반적입니다 : grep -v grep hack). ps -C는 grep을 사용하지 않고 정확히 일치하는 프로세스 테이블을 사용합니다. 따라서 다음과 같이 정확한 목록을 얻을 수 있습니다. ps -fC sh 대신 sh가있는 모든 프로세스를 줄 어딘가에 찾습니다.


때로는 이름으로 프로세스를 grep해야 할 때가 있습니다.

ps aux | grep simple-scan

출력 예 :

simple-scan  1090  0.0  0.1   4248  1432 ?        S    Jun11   0:00

죄송합니다. 파티에 훨씬 늦었지만 여기에 추가하겠습니다. 검색 문자열과 동일한 이름의 프로세스를 캡처하려면 다음을 수행 할 수 있습니다.

pgrep -x PROCESS_NAME

-x          Require an exact match of the process name, or argument list if -f is given.
             The default is to match any substring.

이것은 원래 프로세스가 자신의 이름에 원래 프로세스의 이름을 접두사로 붙이는 하위 프로세스 (쿼리 할 때 좀비가 될 수 있음)를 생성하고 결과에서이를 제외하려는 경우 매우 유용합니다. 이를 수행하는 많은 UNIX 데몬이 있습니다. 내 이동 예제는 ninja-dev-sync 입니다.

참조 URL : https://stackoverflow.com/questions/3790895/linux-bash-using-ps-o-to-get-process-by-specific-name

반응형