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

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

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



답변

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

pgrep -f keyword

로부터 man 페이지 :

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


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

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

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


답변

시험

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

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


답변

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


답변

나는 사용한다

ps -C "keyword" -o pid=

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


답변

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


답변

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

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


답변