programing

지정된 이름의 모든 프로세스를 종료하려면 어떻게 해야 합니까?

newstyles 2023. 4. 9. 21:14

지정된 이름의 모든 프로세스를 종료하려면 어떻게 해야 합니까?

취득한 모든 프로세스를 정지합니다.

ps aux | grep my_pattern

어떻게 하는 거야?

이것은 동작하지 않습니다.

pkill my_pattern

pkill -f

pkill -f my_pattern

동작하지 않는 경우는, 다음의 것도 사용해 주세요.

pkill -9 -f my_pattern

문자열 "myProcessName"에 일치하는 모든 프로세스를 종료합니다.

ps -ef | grep 'myProcessName' | grep -v grep | awk '{print $2}' | xargs -r kill -9

출처 : http://www.commandlinefu.com/commands/view/1138/ps-ef-grep-process-grep-v-grep-awk-print-2-xargs-kill-9

단말기의 "ps 파이프 킬"이 나쁜 이유:

ps -ef로로 합니다.kill -9root 사용자 또는 권한 상승 사용자라면 프로세스에서 소켓 접속을 완전히 셧다운하거나 임시 파일을 정리하거나 자녀에게 삭제 또는 단말기 특성을 리셋할 기회가 없기 때문에 두 배로 좋지 않습니다.

대신 15개를 보내고 1~2초 기다렸다가 안 되면 2개를 보내고 안 되면 1개를 보내 주세요.그렇지 않으면 프로그램이 제대로 작동하지 않으므로 바이너리를 제거하십시오.

원칙적으로 우리는 울타리를 다듬기 위해 Unix Railgun을 사용하지 않는다.https://porkmail.org/era/unix/award.html#kill

위의 명령어 설명:

ps -ef는 이 사용자가 볼 수 있는 컴퓨터에 프로세스 ID 목록을 생성합니다.파이프 GREP는 해당 문자열을 포함하는 행을 필터링합니다.grep -v grepping 을 .파이프 awk 인쇄에는 기본 구분 기호 공백의 행을 분할하고 프로세스 ID인 두 번째 열로 필터링한다고 나와 있습니다. 모든 pid를 "xargs"로합니다.kill -9모든 걸 끝내는 거죠

★★★★ps pipe kill", ", ", ", ", ":

  1. 없는되지 않은 system이 원인입니다.ps -ef에는 수천 개의 프로세스가 나열되어 있으며, 일부 서드파티 프로세스가 프로세스 이름을 공유하고 있는지, 또는 읽기부터 실행까지의 사이에 프로세스 ID가 다른 것으로 변경되었는지 여부를 확인할 수 없습니다.이것으로, 사용의 프로세스와는 관계없는 임의의 필요 프로세스가 종료되었습니다.

  2. 강제 종료되는 코드가 낮은 확률의 레이스 조건으로 데이터베이스 ops 또는 시큐어 트랜잭션을 실행하고 있는 경우, 그 트랜잭션의 원자성이 파괴되어 정의되지 않은 동작이 발생합니다.-9살은 포로가 되지 않는다.이 " "를 .xargs killshutdown을 를 만듭니다.또 요구가 에만, to under-ruction to 셧다운이 됩니다.kill -9

, 고객의 모든 위험과 제어에 대해 고유한 이름을 사용하고 몇 가지 거래 중단이나 가끔 발생하는 부정부패가 문제가 되지 않는 경우 99.9%의 확률로 문제가 없습니다.문제가 있는 경우는, 컴퓨터를 재기동해, 프로세스의 충돌이 없는 것을 확인합니다.이러한 코드 때문에 기술 지원 스크립트가 레벨 5의 밈이 됩니다.「컴퓨터를 재기동해 본 적이 있습니까?」"로봇이 긁혀서pskill -9이치노

왜그 use use use use use use use use use 를 쓰지 않는 거죠?pkill느느것 이이? ????

는 내가 할 수 있게 해 준다.ps,grep,awk,kill ★★★★★★★★★★★★★★★★★」xargs을 사용하다어떤 regex 엔진을 사용할지, 프로세스 이름의 어떤 부분을 일치시킬지, 대소문자를 구분하고 예외를 관리할 수 있습니다.

pkill -f -e -c myProcessName

입니다만, 「 」를 참조해 주세요.man pkillLinux, Mac, Zune-Bash, Linux, Mac, Zune-Bash 른 、 gexxgegege 、 gegege 、 regex gegege 。와000 35000 、 Unix - Railgun killkillkillkill pkill killkillkillkill 。어떤 현상이 일어나는지 본다.

사용하는 프로세스를 보다 유연하게 선택할 필요가 있는 경우

for KILLPID in `ps ax | grep 'my_pattern' | awk ' { print $1;}'`; do 
  kill -9 $KILLPID;
done

grep - e 등을 사용할 수 있습니다.

다음 명령을 사용하여 프로세스를 나열할 수 있습니다.

ps aux | grep -c myProcessName 

프로세스 수를 확인해야 할 경우,

ps aux | grep -c myProcessName |grep -v grep 

그 후 프로세스를 종료할 수 있습니다.

kill -9 $(ps aux | grep -e myProcessName | awk '{ print $2 }') 

, ,을 사용할 수 있습니다.killall -r my_pattern. 프로세스 이름 패턴을 확장 정규 표현으로 해석합니다.

killall -r my_pattern

다음 명령을 사용하여

kill -9 $(ps aux | grep 'process' | grep -v 'grep' | awk '{print $2}')

하건 면건 면건 면건 면건 면건 면건 면 if if ifpkill -f PATTERN조금 위험합니다. 죽이고 싶은 패턴과 일치하는 프로세스를 선택하도록 지시하는 bash 스크립트를 ezkill로 작성했습니다.

경고:이 프로젝트는 더 이상 유지 보수되지 않습니다.

프로세스 ID를 찾는 번거로움을 겪지 않으려면 regexp를 사용하여 프로세스를 이름으로 종료합니다.예를 들어 크롬을 죽이기 위해 다음 코드를 사용하면 효과가 있습니다.

killall -r chrome

「」를인 방법을 .pkill

kill -9 $(ps ax | grep My_pattern| fgrep -v grep | awk '{ print $1 }')

루프할 필요는 없습니다.

방법은 다음과 같습니다.

kill -9 $(pgrep -d' ' -f chrome)

은 pgrep에 된 모든 합니다.chrome이치노

이것은 에 전달됩니다.kill하게 「」할 수 .kill된 모든 「」chrome★★★★★★ 。

아직 위험하니 조심하세요.

다음 명령을 사용하여 수행할 수 있습니다.

ps -ef | grep -i myprocess | awk {'print $2'} | xargs kill -9

또는

ps -aux | grep -i myprocess | awk {'print $2'} | xargs kill -9

저는 좋아요.

안 좋아?

 pkill `pidof myprocess`

예:

# kill all java processes
pkill `pidof java`

사용하는 것이 가장 안전하다pgrep -fkill 그냥 " " " " "pkill -f,grepps의 출력이 잘못될 수 있습니다.

「」를 사용하는 것과는 , 「」를 사용하는 경우는 .ps | grep 를 으로써, 할 필요가 .| grep -v 패턴 트릭을 하여 '패턴 트릭'을 사용합니다.pgrep의도한 대로는 되지 않습니다.

이 「」에는, 「」에 되는 경우는, 「」.ps의 »UID/USER,SDATE/STARTpgrep+pkill이 결함에 괴로워하지 마세요.

그리고 나는 그것을 발견했다.killall -r/ -regexp제 정규표현과 안 맞아서

pkill -f "^python3 path/to/my_script$"

man pkill

나는 Eugen Rike의 대답을 듣고 그것을 가지고 일했다.내 코드는 다음을 추가합니다.

  1. ps ax포함되어 에 GREP에서는 했습니다.grep -Eiv 'grep'
  2. 몇 가지 예시와 에코를 추가하여 사람이 읽을 수 있도록 했습니다.

을 작성했습니다killserver기기있있있있다다

#!/bin/bash
PROCESS_TO_KILL=bin/node
PROCESS_LIST=`ps ax | grep -Ei ${PROCESS_TO_KILL} | grep -Eiv 'grep' | awk ' { print $1;}'`
KILLED=
for KILLPID in $PROCESS_LIST; do
  if [ ! -z $KILLPID ];then
    kill -9 $KILLPID
    echo "Killed PID ${KILLPID}"
    KILLED=yes
  fi
done

if [ -z $KILLED ];then
    echo "Didn't kill anything"
fi

결과.

➜  myapp git:(master) bash killserver
Killed PID 3358
Killed PID 3382
Killed
➜  myapp git:(master) bash killserver
Didn't kill anything

언급URL : https://stackoverflow.com/questions/8987037/how-to-kill-all-processes-with-a-given-partial-name