it-swarm-ko.tech

Mac OS X의 pgrep 및 pkill 대안?

Mac OS X에서 pgreppkill 명령에 대한 대안이 있습니까? 아니면 사용 가능한 다른 명령을 사용하여 별칭을 만들어야합니까?

23
Eimantas

MacPorts : Sudo port install proctools를 사용할 수 있습니다.

다음은 port search pgrep의 결과입니다.

proctools @0.4pre1 (sysutils)
    pgrep, pkill and pfind for OpenBSD and Darwin (Mac OS X)
11
Ricket

OS X Lion에서 Homebrew :

$ brew install proctools

이렇게하면 pgrep, pkillpfind이 다운로드, 빌드 및 설치됩니다.

18
Joe Walp

더 이상 대안이 필요하지 않습니다. MacOS 10.8 pgreppkill이 기본적으로 제공되기 때문입니다.

11
Beat

Mac에서 비교적 최신 버전의 Bash를 사용하고 있다고 가정하면 pgrep 버전을 함수로 작성한 다음 .bashrc 파일에 추가 할 수 있습니다.

function pgrep() {
    ps aux | grep $1 | grep -v grep
}

pkill의 경우 다음을 사용할 수 있습니다.

function pkill() {
    local pid
    pid=$(ps ax | grep $1 | grep -v grep | awk '{ print $1 }')
    kill -9 $pid
    echo -n "Killed $1 (process $pid)"
}
10
λ Jonas Gorauskas

Proctools 에는 pgreppkill이 포함되며 OpenBSD 및 OSX에서 사용할 수 있습니다. 한동안 업데이트되지 않았지만 여전히 작동합니다 (적어도 ABI를 거의 수정하지 않는 OSX에서).

killall을 시도 할 수 있습니다. 이름으로 프로세스를 종료합니다. 전달한 문자열과 일치하는 모든 프로세스가 종료됩니다.

killall httpd ( kill all Apache processes )
killall php ( kill all php process )

만약 당신이

killall -s man ( kill any manual page processes, if a user is using man [command]

아래와 같이 종료되는 프로세스 목록이 표시됩니다.

kill -TERM 70836

다른 신호를 원하면 다음을 수행하십시오.

killall -9 processname
1
Jerry Saravia

이것은 pkill에 대한 내 솔루션이었습니다.

#!/bin/sh

for X in `ps acx | grep -i $1 | awk {'print $1'}`; do
    kill -9 $X;
done