Mac에서 프로세스를 찾고 중지하는 방법


11

프로세스 ID를 찾고 Mac의 포트 8080에서 실행중인 프로세스를 중지하려면 어떻게해야합니까?

우분투에서는 다음과 같이 작동합니다.

ps -aux

프로세스를 찾아서 실행할 수 있습니다.

kill -9 pid

ps -aux 작동하지 않는 것 같습니다. Mac OS X Lion에서 어떻게해야합니까?



3
아니요, 아니요. 제발, 제발, kill -9 pid당신이 시도한 후에 만 ​​사용하십시오 kill pid. 많은 프로세스에는 신호 처리기가있어 리소스 사용을 정리하고 연결을 완전히 닫고 다른 사전 종료 작업을 수행합니다. -9로 종료하면 정리하지 않고 프로세스가 즉시 종료됩니다. -9없이 죽이면 대부분의 시간 동안 작동합니다.
Doug Harris

답변:


16

역사적 이유로, ps의 옵션은 엉키고 일관되지 않은 혼란입니다. OS X Lion에서 다음 중 하나가 작동합니다.

ps -ax
ps -e
ps aux # this displays in a different format

나는 우분투 시험에 편리한 상자,하지만에 따라이없는 사람 페이지 , ps -aux하나가 그것을 할 수있는 올바른 방법이되지 않습니다 :

Note that "ps -aux" is distinct from "ps aux". The POSIX and UNIX
standards require that "ps -aux" print all processes owned by a user
named "x", as well as printing all processes that would be selected by
the -a option. If the user named "x" does not exist, this ps may
interpret the command as "ps aux" instead and print a warning. This
behavior is intended to aid in transitioning old scripts and habits. It
is fragile, subject to change, and thus should not be relied upon.


5

문자열을 따르는 모든 프로세스를 찾아서 종료하려면 Mac OSX에서 다음을 사용할 수도 있습니다.

ps aux | grep <string> | awk '{print $1}' | <sudo> xargs kill -9

기본적으로 이것이 수행하는 작업은 시스템에서 현재 실행중인 모든 프로세스를. 프로세스.

현재 사용자에게 프로세스 종료 권한이없고 시스템에서 SUDO 액세스 권한이있는 경우에만 SUDO를 사용하십시오.


3

나는 ps -efMac ps -aux에서 리눅스 와 거의 동일 하다고 생각 합니다 .

PID가 포트 8080을 사용하는 것을 얻으려면 : lsof -P | grep 8080

필드는 다음과 같이 매핑됩니다.

[mini-nevie:~] nevinwilliams% lsof -P | head -1
COMMAND     PID          USER   FD     TYPE             DEVICE  SIZE/OFF    NODE NAME

ttcp -rs포트 5001에서 수신 대기하는 시작했습니다 .

mini-nevie:~] nevinwilliams% lsof -P | grep 5001
ttcp      27999 nevinwilliams    3u    IPv4 0xb70c1f66028d6961       0t0     TCP *:5001 (LISTEN)

실제로 PID 27999는 ttcp내가 시작한 프로세스 의 PID에 해당 합니다.


1
ps auxOS X에서 (대시없이) 사용할 수도 있습니다. ps -ef다른 열을 포함하고 다른 형식을 사용합니다.
Lri

나는 현재 비교할 리눅스 로그인이 없다; 몇 년 전, IIRC, 만약 -aux가 유닉스의 특정 맛에 대해 예상 된 결과를 제공하지 않았다면, -ef는 ... AIX, Linux, SunOS는 -aux, BSD, Solaris는 호환성을 위해 -ef를 사용했습니다. IRIX가 -aux 또는 -ef인지 잊어 버렸습니다. 나는 각각의 시스템의 주요 차이점은 무엇인지 기억하지 않습니다 ...
네빈 윌리엄스

OS X의 aux와 Ubuntu의 aux와 -aux는 동일한 형식을 사용하지만 Ubuntu의 -aux는 시작시 경고를 인쇄합니다.
Lri

1
아하 ... 분할은 SysV와 BSD 구현 사이에있었습니다.
Nevin Williams

1

macOS의 최신 상태를 유지하려면 :

ps -e | grep python | awk '{print "sudo kill -9",  $1}' | sh

Linux의 경우 :

ps -ax | grep python | awk '{print "sudo kill -9",  $1}' | sh
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.