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

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

주요 시사점

  • 프로세스를 종료한다는 것은 단순히 강제 종료를 의미하며, 프로세스가 응답하지 않거나 오작동하는 경우 필요할 수 있습니다.
  • Linux 및 macOS에는 PID 또는 이름으로 프로세스를 종료할 수 있는 kill, pkill 및 killall과 같은 명령이 있습니다.
  • 프로세스를 종료할 때는 주의를 기울이고 의도하지 않은 결과를 피하기 위해 올바른 프로세스를 종료하는지 확인하는 것이 중요합니다.

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

프로세스란 무엇입니까?

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

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

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

전경 프로세스가 극단 스태프와 배우의 앞부분이라면, 배경 프로세스는 무대 뒤의 ‘무대 뒤’팀이다.

프로세스가 오작동하거나 오작동하는 경우 CPU 시간을 너무 많이 소모하거나 RAM을 소비하거나 긴밀한 계산 루프에 들어가 응답하지 않을 수 있습니다. 그래픽 응용 프로그램은 마우스 클릭에 응답하지 않을 수 있습니다. 터미널 응용 프로그램은 결코 명령 프롬프트로 돌아가지 않을 수 있습니다.

프로세스 종료는 무엇을 합니까?

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

Linux에서는 이를 수행할 수 있는 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

ps 명령은 grep을 통해 파이프되어 셔터 프로세스를 찾습니다.

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

kill 2099

터미널 창에서 kill 명령

kill명령은 조용한 암살자입니다. 성공하더라도 어떤 피드백도 제공하지 않습니다.

macOS에서 프로세스를 종료하는 경우에도 동일하게 작동합니다 .

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. 여기에서 사용자는 pgrepChrome이 실행한 프로세스 수를 확인하기 위해 실행합니다. 그들은 pkill그들 모두를 죽이는 데 사용합니다. pgrep그런 다음 모두 제거되었는지 확인합니다 .

pgrep chrome pkill chrome pgrep chrome

터미널 창의 pgrep 및 pkill

동일한 이름을 가진 여러 프로세스가 실행 중이지만 모두 종료하고 싶지 않은 경우 (명령줄) 옵션을 사용하여 어떤 프로세스인지 식별할 수 pgrep있습니다 -f. 간단한 예는 두 개의 프로세스입니다 ping. 당신은 그들 중 한 명을 죽이고 싶지만 다른 한 명은 죽이고 싶지 않습니다. 명령줄을 사용하여 이를 구별할 수 있습니다. 명령줄 매개변수를 묶을 때 따옴표를 사용하는 것에 유의하세요.

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

ping 명령줄을 사용하여 pgrep pkill

살인 명령

경고 : Solaris 및 OpenIndiana 운영 체제에서 이 killall명령은 사용자에게 속한 모든 프로세스를 종료합니다. 루트이거나 발행한 경우 sudo killall컴퓨터를 재부팅합니다! 이 기사를 조사하는 동안 이 동작은 최신 버전의 OpenIndiana Hipster 2018.10에서 확인되었습니다.

killall명령은 명령 과 비슷한 방식으로 작동pkill 하지만 특정한 차이점이 있습니다. 명령에 검색어를 전달하는 대신 정확한 프로세스 이름을 제공해야 합니다.

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

killall shutt killall shutter

터미널 창의 killall 명령

(보다 젊음) 옵션 -y을 사용하면 지정된 기간보다 짧은 기간 동안 실행된 프로세스를 종료할 수 있습니다. 기간은 숫자 뒤에 다음 단위 중 하나로 표시됩니다.

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

ana방금 시작된 호출된 프로세스를 종료 하고 실행 중인 이전 인스턴스를 그대로 두려면 2분 이내에 반응했다면 와 ana함께 다음 매개변수를 사용할 수 있습니다 .killall

killall -y 2m ana

옵션보다 어린 킬올

( -o보다 오래됨) 옵션을 사용하면 지정된 기간보다 오랫동안 실행된 프로세스를 종료할 수 있습니다. ssh이 명령은 하루 이상 실행된 모든 연결을 종료합니다 .

killall -o 1d sshd

터미널 창의 killall 명령

모든 프로세스를 종료할 수 있나요?

이러한 명령을 사용하면 정확하고 안전하게 잘못된 프로세스를 식별하고 종료할 수 있습니다. 그러나 너무 기뻐서 종료해서는 안되는 프로세스를 종료하는 것이 전적으로 가능합니다.

항상 조심하세요. 먼저, 종료하려는 프로세스가 실제로 원하는 프로세스인지 확인하세요. 둘째, 다시 한 번 확인하세요. 대상 프로세스가 종료하려는 프로세스인지 주의 깊게 확인하세요. 만족스러우면 프로세스 종료를 진행하세요.

실수로 프로세스를 종료하면 세상이 끝나는 것이 아닙니다. 가장 가능성이 높은 결과는 무언가 버그가 발생하여 PC를 다시 시작해야 하거나 종료한 프로세스와 관련된 프로그램에서 수행한 작업이 손실될 수 있다는 것입니다.

리눅스 명령

파일

tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · Join · jq · fold · uniq · Journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · 보기 · 문자열 · 유형 · 이름 바꾸기 · zip · unzip · 마운트 · umount · 설치 · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · 패치 · 변환 · rclone · shred · srm · scp · gzip · chattr · cut · find · umask · wc · tr

프로세스

별칭 · 화면 · 상단 · nice · renice · 진행 · strace · systemd · tmux · chsh · 기록 · at · 배치 · 무료 · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · 시간 초과 · · · 종료 · 절전 · sudo · su · 시간 · groupadd · usermod · 그룹 · lshw · 종료 · 재부팅 · 중지 · 전원 끄기 · passwd · lscpu · crontab · 날짜 · bg · fg · pidof · nohup · pmap

네트워킹

netstat · ping · 추적 경로 · ip · ss · whois · 실패2ban · bmon · 발굴 · 손가락 · nmap · ftp · · wget · who · whoami · w · iptables · ssh-keygen · ufw · arping · 방화벽d

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다