리눅스 터미널에서 프로세스를 종료하는 방법

0
2675
우분투 테마 양식화 된 Linux 터미널
Fatmawati Achmad Zaenuri / Shutterstock.com

프로세스를 종료하는 것이 때때로 프로세스를 제거하는 유일한 방법입니다. 가혹한 이름에도 불구하고 프로세스를“살해”는 것은“강제 종료”를 의미합니다. Linux 또는 macOS 명령 줄에서 수행하는 방법은 다음과 같습니다.

프로세스 란 무엇입니까?

웹 브라우저, 데스크탑 환경과 관련된 백그라운드 프로세스 및 Linux 시스템 서비스와 같은 프로그램 실행은 모두 프로세스입니다.

프로세스를 두 그룹으로 묶을 수 있습니다.

  • 포 그라운드 프로세스 사용자가 시작하거나 시작한 것입니다. 터미널 창에 있거나 그래픽 응용 프로그램 일 수 있습니다.
  • 백그라운드 프로세스 자동으로 시작되고 사용자와 상호 작용하지 않는 모든 프로세스입니다. 그들은 사용자의 의견을 기대하거나 결과 나 결과를 제시하지 않습니다. 백그라운드 프로세스는 서비스 및 데몬과 같은 것입니다.

포 그라운드 프로세스가 극장 스태프와 액터의 프론트이면 백그라운드 프로세스는 무대 뒤의 “장면 뒤”팀입니다.

프로세스가 오작동하거나 오작동하면 CPU 시간이 너무 많이 걸리거나 RAM을 사용하거나 계산 루프에 들어가 응답하지 않을 수 있습니다. 그래픽 응용 프로그램은 마우스 클릭에 대한 응답을 거부 할 수 있습니다. 터미널 응용 프로그램은 절대로 명령 프롬프트로 돌아 오지 않을 수 있습니다.

인간 답

프로세스를 “완료”한다는 것은 “프로세스를 강제 종료”한다는 의미입니다. 프로세스가 응답을 거부하는 경우 필요할 수 있습니다.

리눅스는 kill, pkill, killall 명령을 수행하면됩니다. 이러한 명령은 모든 유형의 프로세스, 그래픽 또는 명령 행, 포 그라운드 또는 배경과 함께 사용할 수 있습니다.

살해 명령

사용 kill종료하려는 프로세스의 프로세스 ID (PID)를 알아야합니다. 그만큼 ps 명령을 사용하여 프로세스의 PID를 찾을 수 있습니다.

가지고 ps 모든 프로세스를 통해 검색 -e (모든 프로세스) 옵션. 출력을 통한 배관 less 좋습니다, 꽤 많이있을 것입니다. 유형 ps, 우주, -e, 우주, | (파이프 문자), 다른 공백을 입력 한 다음 less. Enter를 눌러 명령을 실행하십시오.

ps -e | less

터미널 창에서 ps 명령

그러면 아래 스크린 샷과 유사한 프로세스 목록이 제공됩니다. 앞으로 검색 할 수 있습니다 less 사용하여 / 키를 사용하면 ? 키.

적은 창에서 ps 출력

관심있는 프로세스에 집중하려면 ps …을 통하여 grep 프로세스의 이름 또는 이름의 일부를 지정하십시오.

ps -e | grep shutter

grep을 통해 ps 명령을 통해 셔터 프로세스 찾기

종료하려는 프로세스의 PID를 찾았 으면 PID를 전달하십시오. kill 매개 변수로 명령하십시오. 종료하려면 shutter 이전 명령으로 식별 된 프로세스는 다음 명령을 사용하십시오.

kill 2099

터미널 창에서 kill 명령

그만큼 kill command는 조용한 암살자입니다. 성공한 경우 피드백을 제공하지 않습니다.

pkill 명령

그만큼 pkill 명령을 사용하면 프로세스 또는 이름별로 프로세스를 종료 할 수 있습니다. PID로 프로세스를 식별 할 필요는 없습니다. 사용 pkill 검색어를 제공하면 pkill 실행중인 프로세스 목록을 확인하는 데 사용합니다. 일치하는 프로세스가 종료됩니다. 따라서 검색어의 철자가 올바른지 확인해야합니다.

안전망으로 pgrep 명령 전에 당신은 pkill 명령. 그만큼 pgrep 명령은 검색어도 허용합니다. 검색어와 일치하는 각 프로세스의 PID가 나열됩니다. 이것은 안전하기 때문에 pgrep 프로세스에 킬 신호를 발행하지 않으며 검색어를 잘못 입력해도 실수로 다른 프로세스를 종료하지 않습니다. 검색어를 전달하기 전에 올바르게 생각했는지 확인할 수 있습니다. pkill. 양자 모두 pkillpgrep 검색어를 같은 방식으로 취급하십시오. 그들의 치료법은 매우 유사하여 같은 매뉴얼 페이지를 공유합니다.

이름에 “subq”가있는 프로세스가 있다고 가정 해 봅시다. 우리는 ps -u dave | grep 커튼 뒤에 엿보기를 명령합니다. “subq”가 해당 프로세스 및 해당 프로세스에만 일치 함을 알 수 있습니다. 프로세스의 전체 이름을 볼 수 있도록하기위한 것입니다.

ps -u dave | grep subq

터미널 창에서 ps 명령

사용자를 가정 해 봅시다 하지 않았다 그렇게 했어요; 프로세스 이름에 하위 문자열 “subq”가 포함되어 있다는 것만 알고 있습니다. 그들은 사용 pgrep 검색어와 일치하는 항목이 하나만 있는지 확인하십시오. 그런 다음 해당 검색어를 pkill.

pgrep subq
pkill subq

터미널 창에서 pgrep 및 pkill

당신이 사용할 수있는 pkill 한 번에 여러 프로세스를 종료합니다. 여기서 사용자는 pgrep Chrome이 시작한 프로세스 수를 확인합니다. 그들은 사용 pkill 그들 모두를 죽일 수 있습니다. 그런 다음 확인 pgrep 모두 제거되었습니다.

pgrep chrome
pkill chrome
pgrep chrome

터미널 창에서 pgrep 및 pkill

이름이 같은 여러 프로세스가 실행 중이지만 모두 종료하지 않으려면 다음을 사용할 수 있습니다. pgrep 와 더불어 -f (명령 줄) 옵션으로 어떤 프로세스가 어떤 프로세스인지 식별합니다. 간단한 예는 2입니다 ping 프로세스. 당신은 그들 중 하나를 죽이고 싶지만 다른 하나는 죽이고 싶지 않습니다. 명령 행을 사용하여 구별 할 수 있습니다. 따옴표를 사용하여 명령 행 매개 변수를 랩하십시오.

pgrep -f "ping 192.168.4.22"
pkill -f "ping 192.168.4.22"

ping 명령 줄이있는 pgrep pkill

killall 명령

경고: Solaris 및 OpenIndiana 운영 체제에서 killall 명령은 당신에게 속한 모든 과정을 죽여라. 루트이거나 발행 한 경우 sudo killall 당신은 컴퓨터를 재부팅합니다! 이 기사를 연구하는 동안이 동작은 최신 버전의 OpenIndiana Hipster 2018.10에서 확인되었습니다.

그만큼 killall 명령은 pkill 명령에 따라 차이가 있습니다. 명령에 검색어를 전달하는 대신 정확한 프로세스 이름을 제공해야합니다.

프로세스 이름과 부분적으로 일치하는 것은 제공 할 수 없습니다. 다음과 같이 전체 프로세스 이름을 제공해야합니다.

killall shutt
killall shutter

터미널 창에서 killall 명령

그만큼 -y (보다 젊음) 옵션을 사용하면 실행중인 프로세스를 종료 할 수 있습니다 적게 지정된 기간보다. 기간은 숫자로 표시되고 다음 단위 중 하나가 뒤에옵니다.

  • s (초)
  • m (분)
  • h (시간)
  • d (일)
  • w (주)
  • M (월, 메모, 자본“M”)
  • y (년)

호출 된 프로세스를 종료하려면 ana 방금 시작되었고 ana 실행하면 다음 매개 변수를 사용할 수 있습니다 killall2 분 안에 반응 한 경우 :

killall -y 2m ana

옵션보다 어린 살해

그만큼 -o (이전) 옵션을 사용하면 지정된 기간보다 오래 실행 된 프로세스를 종료 할 수 있습니다. 이 명령은 모두를 죽일 것입니다 ssh 하루 이상 실행 된 연결 :

killall -o 1d sshd

터미널 창에서 killall 명령

너무 행복하지 마세요

이 명령을 사용하면 정확하고 안전하게 잘못된 프로세스를 식별하고 종료 할 수 있습니다.

항상 조심하십시오. 먼저, 죽이려는 프로세스가 실제로 원하는 프로세스인지 확인하십시오. 둘째, 이중 점검 –주의하여 목표 프로세스가 종료하려는 프로세스인지 확인하십시오. 만족 스러우면 프로세스를 종료하십시오.