복잡한 프로세스 이름에 대한 pgrep / pidof 사용법?


11

시스템의 프로세스에 HUP를 보낼 수 있도록 pidof 또는 pgrep을 사용하려고합니다. 문제는 정확한 매개 변수로 프로세스를 종료하고 싶다는 것입니다.

이것은 'ps awx'의 출력입니다.

  657 ?        S      0:00 processname software
  658 ?        S      0:00 processname demo
  659 ?        S      0:00 processname test

다음 중 하나를 수행하면

pidof processname 
pgrep processname

processname으로 시작하는 모든 프로세스 목록을 얻지 만 다음과 같이하고 싶습니다.

pidof processname test
pgrep processname test

필요한 PID 만 검색하려면 (이 예제에서는 659)

최신 정보

pgrep에서 -f 플래그를 사용하면 원하는 작업을 수행 할 수 있습니다.

pgrep -f "processname test"

당신은 정답을 얻을 것입니다.


일반적으로 -f전체 명령 줄에서 일치 시키려고하므로 일반적으로 필요 합니다. pgrep은 정규 표현식에서 작동하므로 비교적 복잡한 일치도 수행 할 수 있습니다.
cjc

답변:


10
$ ps aux |grep [d]evio
user01   10220  0.0  0.1   5376  2424 pts/5    S+   11:41   0:00 ssh devio
$ pgrep -f "ssh devio"
10220
$ pkill -0 -f "ssh devio" ; echo $?
0
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.