ps -ef | grep 키워드에서 PID 가져 오기


111

ps -ef | grep "keyword"데몬 프로세스의 pid를 결정하는 데 사용하고 싶습니다 (ps -ef 출력에 고유 한 문자열이 있음).

프로세스 pkill keyword를 죽이는 대신 PID를 반환하는 명령이 있습니까? (pidof 또는 pgrep이 작동하지 않음)

답변:


231

당신은 할 수 사용 pgrep하면 포함만큼 -f옵션을. 이는 pgrep프로세스 이름 대신 전체 명령 (인수 포함)에서 일치 키워드를 만듭니다 .

pgrep -f keyword

로부터 man 페이지 :

-f       패턴은 일반적으로 프로세스 이름에 대해서만 일치합니다. 때 -f설정, 전체 명령 줄이 사용됩니다.


정말로 pgrep을 피하려면 다음을 시도하십시오.

ps -ef | awk '/[k]eyword/{print $2}'

[]키워드의 첫 글자 주위에 유의하십시오 . 이는 awk명령 자체와 일치하지 않도록하는 유용한 트릭 입니다.


3
ps는 과도하게 사용되고 pgrep은 너무 적게 사용됩니다. 게시물 주셔서 감사합니다.
Felipe Alvarez 2013

6
kill 출력을 전달하는 한 가지 방법은 다음과 같습니다. kill -9 `pgrep -f keyword`
Kris

이 대답은 역대 최고입니다. 그래서 많은 시간을 내가 함께 낭비했습니다ps aux | grep chrome
브랜든

사용했다 [k]에 트릭을 pgrep -f. 나는 그것이 부모의 명령 따기이라고 생각 때문에 내 스크립트는 서브 쉘에서 실행되었다 (확실히 알고 하드를 - (가) 명령 실행이 완료되었을 때 사라 반환 된 PID!)
ArtOfWarfare

2
이 사용 사례의 @Kris는 사용하는 것이 더 간단하지 pkill -9 -f keyword않습니까?
oidualc 2010 년

53

시험

ps -ef | grep "KEYWORD" | awk '{print $2}'

이 명령은 KEYWORD가 포함 된 프로세스의 PID를 제공해야합니다. 이 경우 awk출력에서 두 번째 열에있는 내용을 반환합니다.


2
이것은 하나 이상의 pid를 반환 할 수 있기 때문에 추가하여 첫 번째 pid를 얻을 수 있습니다 | head -1.
Kris

'head -1'은 일부 Linux에서 grep PID를 반환하며 tail -1이어야합니다.
Joao Vitorino

22

ps -ef | grep KEYWORD | grep -v grep | awk '{print $2}'


4
오타일까요? ps -ef | grep 키워드 | grep -v grep | awk '{print $ 2}'
rmv

반환 된 PID를 "kill -9"에 전달하는 방법을 알고 있습니까?!
alybadawy

3
@alybadawy 그냥 | xargs kill -9끝에 추가
patte

8

나는 사용한다

ps -C "keyword" -o pid=

이 명령은 PID 번호를 제공해야합니다.


7

이것은 리눅스에서 사용할 수 있습니다 : pidof 키워드


3

특정 키워드로 프로세스를 종료하려면 ~/.bashrc(linux) 또는 ~/.bash_profile(mac) 에서 별칭을 만들 수 있습니다 .

alias killps="kill -9 `ps -ef | grep '[k]eyword' | awk '{print $2}'`"

완전한! 끝 부분에 파이프를 추가하면 | head -1이 모든 것이 멋지고 깔끔하게 마무리됩니다.
Russ
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.