답변:
강제 종료 권한이있는 모든 프로세스를 강제 종료하려면 명령을 실행하십시오.
kill -15 -1
또는 kill -9 -1
원하는 동작에 따라 ( man kill
자세한 내용으로 사용 )
파이어 폭스와 같은 특정 프로세스를 죽이려면 간단히 실행하십시오.
pkill firefox
또는 killall firefox
원하는 행동에 따라 : 'killall'과 'pkill'의 차이점은 무엇입니까?
실행중인 프로세스를 보려면 다음 명령을 사용하십시오.
ps -ef
사용자 bob이 모든 프로세스를 찾으려면 도움이 될 수 있습니다.
pgrep -l -u bob
또는
ps -ef | grep bob
firefox-bin
입니다.
killall firefox
및 killall firefox-bin
및 작동 기능을 참조하십시오. 첫 의견에 동의합니다.
사용 sudo kill <pid>
또는sudo killall <process-name>
user 소유의 모든 프로세스를 강제 종료하려면 username
다음을 실행하십시오.
pkill -U username
문제를 두 부분으로 나눕니다.
1) 내가 시작한 프로세스를 어떻게 찾을 수 있습니까? 이것을 실행하십시오 :
ps -u `whoami`
는 whoami
당신이 그렇지 않으면 바로 다시 따옴표없이 계정의 이름을 입력, 사용중인 계정의 이름을 모르는 경우를 대비합니다.
계정에서 삭제할 수있는 모든 프로세스가 나열됩니다.
2) ps
명령은 프로세스 번호, TTY, 시간 및 CMD를 나열합니다. 프로세스 ID는 첫 번째 열입니다. 이 번호를 사용하여 프로세스를 종료하십시오. 프로세스를 종료하는 동안주의하십시오. 잘못된 프로세스를 종료하면 문제가 발생할 수 있습니다. 프로세스를 종료하려면 kill
명령 을 사용 하여 프로세스에 SIGNAL을 보냅니다. 신호는 프로세스 가 수행 해야 할 작업을 나타냅니다 . 예를 들어, -1
프로세스에를 보내면 구성 파일을 다시로드하라는 메시지가 표시됩니다. a를 보내는 -2
것은 해당 프로세스에서 Control + C를 누르는 것과 같습니다. -9
커널이 프로세스와 통신하지 않고 프로세스를 포기하게합니다.
ps -u가 whoami
다음과 같은 것을 반환한다고 가정합니다.
PID TTY TIME CMD
4333 pts/1 00:00:00 fish
4335 ? 00:00:00 fishd
4816 ? 00:00:00 intellij
4868 ? 00:50:42 java
4939 ? 00:00:19 fsnotifier64
7667 ? 02:49:08 firefox
7698 ? 00:00:00 unity-webapps-s
그리고 firefox
프로세스 ID로 프로세스를 종료하고 싶을 때 다음을 수행하십시오.
kill -1 7667
그런 다음 동일한 ps
명령을 다시 실행 하고 프로세스가 여전히 실행 중인지 확인하십시오. 여전히 실행 중이면
kill -2 7667
까지 길을 일하고 있습니다 -9
.
계정으로 시작한 모든 프로세스를 종료하려면을 입력하십시오 kill <level> -1
. 전과 동일 :까지 작업하십시오 -9
.
프로세스의 이름을 알고 있다면 간단하게 가서 killall <processname>
죽일 수 있습니다. 예를 들면 다음 killall fish
과 같습니다.
http://manpages.ubuntu.com/manpages/hardy/man1/killall.1.html에 대한 설명서가 killall
있습니다 .
... Linux의 모든 프로세스는 신호에 응답합니다. 신호는 프로그램에게 동작을 종료하거나 수정하도록 지시하는 운영 체제 수준의 방법입니다.
PID로 프로세스 신호를 보내는 방법
신호를 프로그램에 전달하는 가장 일반적인 방법은 kill 명령입니다.
예상 한대로이 유틸리티의 기본 기능은 프로세스 종료를 시도하는 것입니다.
kill PID_of_target_process
TERM 신호를 프로세스로 보냅니다. TERM 신호는 프로세스가 종료되도록 알려줍니다. 이를 통해 프로그램은 정리 작업을 수행하고 원활하게 종료 할 수 있습니다.
프로그램이 잘못 작동하고 TERM 신호가 제공 될 때 종료되지 않으면 KILL 신호를 전달하여 신호를 에스컬레이션 할 수 있습니다.
kill -KILL PID_of_target_process
이것은 프로그램으로 전송되지 않는 특수 신호입니다.
대신 운영 체제 커널에 제공되어 프로세스를 종료합니다. 전송 된 신호를 무시하는 프로그램을 우회하는 데 사용됩니다 ...
나는 Skype를 죽이기 위해 쓴 작은 스크립트를 썼다.
kill -s 9 `ps aux | grep skype | head -n 1 | cut -f4 -d" "`
그러나 나는 그 당시 일한만큼 pid가 길이가 다르고 공간이 다르기 때문에 다음날 작동하지 않는다는 것을 알았습니다.
그런 다음이 사이트를 방문하여 시도했습니다.
pgrep -l -u justin
형식으로 프로세스를 편리하게 출력
[pid] [name]
그래서 스크립트의 코드를 다음과 같이 조정했습니다.
kill -s 9 `pgrep -l -u justin | grep skype | cut -f1 -d" "`
이것이하는 것은 모든 프로세스 justin
가 실행중인 파이프 (모든 사용자 이름으로 변경 가능)를 grep
찾고 skype
(프로세스로 변경할 수 있음) 파이프를 파이프 cut
한 다음 PID 만 읽고 마지막으로 사용합니다. kill
명령 에서 PID를 종료하십시오 .
-l
실행 pgrep -u justin skype
하고 죽일 수 있습니다 pkill -u justin skype
(또는 pkill -KILL -u justin skype
SIGKILL 전송).
여기에 내가 작성한 간단한 python 스크립트 인 killProcess.py가 입력으로 무엇이든 받아들이고 죽일 것입니다.
개별적이고 프로그래밍 방식으로 죽이고 싶은 많은 파이썬이나 노드 프로세스가 있기 때문에이 스크립트를 작성했습니다. "killall python"을 사용할 수 없습니다. 계속 실행해야하는 프로세스가 중지되기 때문입니다.
파일 이름을 "killProcess.py"로 지정한 다음 중지하려는 스크립트 이름을 추가하십시오. 예 : python killProcess.py runnablePoller.py는 runnablePoller.py 파일을 죽입니다.
import os;
import sys;
for arg in sys.argv:
if(arg!="killProcess.py"):
process=arg;
print(process);
processes =os.popen("ps -ef | grep "+process).read();
processes=processes.split("\n");
processes=processes[0].split(" ");
#print(processes);
for p in processes:
try:
pid=int(p);
print(pid);
break;
except:
continue;
os.system("kill "+str(pid));
Ctrl+ Alt+ Delete몇 번의 클릭만으로 프로세스를 쉽게 종료 할 수있는 작업 관리자에 액세스 할 수 있도록 설정할 수 있으며, 나에게 잘못되었을 경우 손상 될 수있는 명령을 기억할 필요가 없습니다.
http://ubuntuhandbook.org/index.php/2013/07/use-ctrl-alt-del-task-manager-ubuntu/
kill -15 -1
에만 진행합니다 . 데이터베이스 트랜잭션의 중간에있을 수있는 프로세스를 임의로 종료하는 것은 제안한대로 우연히해야 할 일이 아닙니다.kill -9 -1