리눅스에서 어떻게 PID 대신 이름으로 프로세스를 죽일 수 있습니까?
때때로 Firefox를 시작하려고 하면 "Firefox 프로세스가 이미 실행 중입니다."라고 표시됩니다.그래서 나는 이것을 해야만 합니다.
jeremy@jeremy-desktop:~$ ps aux | grep firefox
jeremy 7451 25.0 27.4 170536 65680 ? Sl 22:39 1:18 /usr/lib/firefox-3.0.1/firefox
jeremy 7578 0.0 0.3 3004 768 pts/0 S+ 22:44 0:00 grep firefox
jeremy@jeremy-desktop:~$ kill 7451
제가 원하는 것은 저를 위해 그 모든 것을 할 수 있는 명령입니다.과 입문열필요고하이자를 합니다.grep
프로세스 목록에 있는 모든 프로세스를 삭제할 수 있습니다.
jeremy@jeremy-desktop:~$ killbyname firefox
는 PHP로 했지만 PHP는 로하고했지만려,exec('ps aux')
에는 를사여실프표로것같시습다니는하만으로 됩니다.exec()
PHP 스크립트 자체(따라서 표시되는 유일한 프로세스는 자체입니다.)
pkill firefox
더 많은 정보: http://linux.about.com/library/cmd/blcmdl1_pkill.htm
사용 가능:
pkill -f "Process name"
저는 완벽하게 잘 됐어요.그것이 제가 찾던 것이었습니다.pkill은 플래그가 없는 이름으로는 작동하지 않습니다.
때-f
이 설정되어 있으면 전체 명령줄이 패턴 일치에 사용됩니다.
다음을 사용하여 이름으로 프로세스를 죽일 수 있습니다.
killall은 지정된 명령을 실행하는 모든 프로세스에 신호를 보냅니다.신호 이름을 지정하지 않으면 SIGTERM이 전송됩니다.
신호는 이름(예: -HUP 또는 -SIGUP) 또는 번호(예: -1) 또는 옵션 -s로 지정할 수 있습니다.
명령 이름이 정규식(옵션 -r)이 아니며 슬래시(/)를 포함하는 경우 해당 특정 파일을 실행하는 프로세스가 이름과 관계없이 선택되어 삭제됩니다.
하지만 만약 당신이 그 과정을 보지 못한다면.ps aux
당신은 아마 그것을 죽일 권리가 없을 것입니다...
가장 쉬운 방법은 먼저 올바른 프로세스 ID를 확인하는 것입니다.
pgrep -f [part_of_a_command]
결과가 예상대로라면.다음 항목으로 이동:
pkill -f [part_of_a_command]
프로세스가 정체되어 요청을 수행할 수 없는 경우 kill을 사용할 수 있습니다.
kill -9 $(pgrep -f [part_of_a_command])
안전한 편에 서서 처음 시작한 프로세스만 종료하려면 추가-u
이름과 .
pkill -f [part_of_a_command] -u [username]
조금 더 긴 대안:
kill `pidof firefox`
시작 경로에 있는 모든 프로세스를 종료합니다./directory/를 스니펫으로 입력하기 위해 어떤 디렉토리에서 시작된 모든 앱을 죽일 수 있습니다.이 기능은 동일한 앱 디렉터리에서 동일한 응용 프로그램에 대한 여러 구성 요소를 시작할 때 매우 유용합니다.
ps ax | grep <snippet> | grep -v grep | awk '{print $1}' | xargs kill
가능하다면 pgrep을 원합니다.
이상하지만 이런 솔루션은 본 적이 없습니다.
kill -9 `pidof firefox`
또한 다음과 같은 여러 프로세스(복수 pid)를 죽일 수 있습니다.
kill -9 `pgrep firefox`
선호합니다pidof
단일 라인 출력을 가지므로:
> pgrep firefox
6316
6565
> pidof firefox
6565 6316
사용.killall
명령:
killall processname
사용하다-9
또는-KILL
프로그램을 강제로 죽입니다(옵션은 다음과 유사합니다).kill
명령).
맥에서 나는 pgrep과 pkill을 찾을 수 없었고 둘 다 작동하지 않았기 때문에 간단한 라이너 스크립트를 작성했습니다.
export pid=`ps | grep process_name | awk 'NR==1{print $1}' | cut -d' ' -f1`;kill $pid
더 쉬운 방법이 있다면 공유해주세요.
그렙으로 죽이는 것:
kill -9 `pgrep myprocess`
더 정확한 것은 다음과 같습니다.
export pid=`ps aux | grep process_name | awk 'NR==1{print $2}' | cut -d' ' -f1`;kill -9 $pid
나는 보통 그것을 사용합니다.killall
지휘권
이 명령에 대한 자세한 내용은 이 링크를 참조하십시오.
저도 같은 질문을 던졌지만 현재 답변의 문제는 그들이 살해될 과정을 안전하게 확인하지 않는다는 것입니다.그것은 끔찍한 실수로 이어질 수 있습니다 :)...특히 여러 프로세스가 패턴과 일치하는 경우.
면책 사항으로서, 저는 재봉사가 아니며 분명히 개선의 여지가 있습니다.
그래서 저는 작은 sh 대본을 썼습니다:
#!/bin/sh
killables=$(ps aux | grep $1 | grep -v mykill | grep -v grep)
if [ ! "${killables}" = "" ]
then
echo "You are going to kill some process:"
echo "${killables}"
else
echo "No process with the pattern $1 found."
return
fi
echo -n "Is it ok?(Y/N)"
read input
if [ "$input" = "Y" ]
then
for pid in $(echo "${killables}" | awk '{print $2}')
do
echo killing $pid "..."
kill $pid
echo $pid killed
done
fi
kill -9 $(ps aux | grep -e myprocessname | awk '{ print $2 })'
GNOME을 실행하는 경우 윈도우즈에서와 같이 시스템 모니터(시스템 ->관리 ->시스템 모니터)를 사용하여 프로세스를 종료할 수 있습니다.KDE도 비슷한 것을 가지고 있을 것입니다.
기본값kill
명령은 명령 이름을 PID 대신 사용할 수 있습니다.킬 (1)을 참조하십시오.종종 발생하는 문제는bash
자체 제공kill
직업 번호를 받아들이는 것, 예를 들면.kill %1
명령 이름이 아닙니다.이것은 기본 명령을 방해합니다.전자 기능이 후자보다 더 유용한 경우, 다음을 사용하지 않도록 설정할 수 있습니다.bash
호출 버전
enable -n kill
자세한 내용은kill
그리고.enable
bash (1)의 항목.
ps aux | grep processname | cut -d' ' -f7 | xargs kill -9 $
머리글을 파싱하는 어크원라이너ps
출력을 사용하면 열 번호(열 이름 제외)에 대해 신경 쓸 필요가 없습니다.지원 정규식.예를 들어, (경로가 없는) 실행 파일 이름에 "firefox" try라는 단어가 포함된 모든 프로세스를 종료하려면
ps -fe | awk 'NR==1{for (i=1; i<=NF; i++) {if ($i=="COMMAND") Ncmd=i; else if ($i=="PID") Npid=i} if (!Ncmd || !Npid) {print "wrong or no header" > "/dev/stderr"; exit} }$Ncmd~"/"name"$"{print "killing "$Ncmd" with PID " $Npid; system("kill "$Npid)}' name=.*firefox.*
언급URL : https://stackoverflow.com/questions/160924/how-can-i-kill-a-process-by-name-instead-of-pid-on-linux
'programing' 카테고리의 다른 글
파이프를 사용하여 날짜를 dd/MM/yyyy로 형식 지정 (0) | 2023.05.23 |
---|---|
이클립스로 GitHub 프로젝트 가져오기 (0) | 2023.05.18 |
Tuple을 에서 사용할 수 있는 실용적인 예입니다.넷 4.0? (0) | 2023.05.18 |
Git: "손상된 느슨한 개체" (0) | 2023.05.18 |
C#에 대해 가장 좋아하는 확장 방법은 무엇입니까? (codeplex.com/extensionoverflow) (0) | 2023.05.18 |