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

우리 모두는 컴퓨터가 예외적으로 느리게 실행되고 심지어 기본적인 작업을 수행하는 데 더듬거리는 날을 보냈습니다. Windows에서는 그다지 중요하지 않지만 엄청난 양의 메모리를 소비하는 프로세스를 검사하고 종료하는 Windows 작업 관리자만 있습니다. 그러나 Linux에서는 이러한 작업을 관리하기 위한 명령 및 GUI 도구의 전체 무기고가 있습니다. 이 기사에서는 Linux에서 프로세스를 종료하는 방법에 대한 몇 가지 쉬운 명령줄(CLI) 방법과 GUI 방법을 보여줍니다.

Linux에서 프로세스 종료(2023)

그러나 Linux에서 프로세스 관리의 세계로 뛰어들기 전에 프로세스가 정확히 무엇인지, Linux 시스템에서 프로세스 ID가 무엇인지 이해하겠습니다.

Linux의 프로세스는 무엇입니까

Linux에서 현재 실행 중인 프로그램의 각 인스턴스는 “프로세스”로 알려져 있으며 각 실행 파일은 프로그램으로 알려져 있습니다. 프로그램이 실행되면 프로세스가 생성되고 각 프로세스에는 “프로세스 ID”라는 고유한 5자리 식별 ​​번호가 할당됩니다. 프로세스가 실행을 완료하거나 강제 종료되면 프로세스 ID가 다음 프로세스에 할당됩니다.

Linux에서 명령줄을 통해 프로세스 종료

기본 작업에 GUI 도구를 사용하는 것과 비교할 때 터미널을 사용하는 것이 때때로 두려운 것처럼 보일 수 있지만 일단 명령과 다양한 옵션을 파악하면 다양한 프로세스를 관리하는 것이 훨씬 쉬워집니다.

종료 신호

Linux의 GUI 또는 CLI에서 프로세스를 종료하려고 하면 커널이 프로세스에 종료 신호를 보냅니다. 프로세스는 수신된 신호에 따라 그에 따라 작동합니다. 이러한 각 신호에는 프로그램이 빠르게 이해할 수 있도록 특정 번호가 할당됩니다. 수많은 유형의 종료 신호가 있지만 여기서는 필수 신호만 설명했습니다.

SignalNumeric ValueDescriptionSIGHUP1’Signal Hangup’의 약자입니다.
단말기가 닫힐 때 전송됩니다.SIGINT2’Signal Interrupt’의 약자입니다.
사용자가 프로세스를 종료할 때 전송됩니다.SIGKILL9’Signal Kill’의 약자입니다.
프로세스를 즉시 종료해야 할 때 전송됩니다.SIGTERM15’Signal Termination’의 약자입니다.
프로세스를 종료하고 소비된 리소스를 해제해야 할 때 전송됩니다. SIGSTOP19 – for ARM, x86
17 – 알파용
23 – MIPS용
24 – PA-RISCI의 경우 ‘Signal Stop’을 의미합니다.
프로세스를 일시 중지하고 나중에 다시 시작해야 할 때 전송됩니다. 가장 일반적으로 사용되는 신호는 SIGKILL(9) 및 SIGTERM(15)입니다.

프로세스 ID 식별

프로세스를 종료하기 전에 프로세스 ID, 실행 시간 등과 같은 프로세스의 세부 정보를 알아야 합니다. 프로세스의 세부 정보를 알려면 ps 명령을 사용하십시오.

  Xbox Series X 및 S에서 120Hz를 활성화하는 방법

추신

ps 명령을 사용하면 프로세스 이름을 스크롤하고 기록하여 프로세스를 검색해야 하는데 이는 번거로울 수 있습니다. 대신 아래와 같이 파이프라인에서 ps 명령과 함께 grep 명령을 사용할 수도 있습니다.

추신 | grep <프로세스 이름>

작업을 더 간단하게 하기 위해 알아야 할 실행 중인 프로세스의 프로세스 ID만 표시하는 별도의 명령이 있습니다. pidof 명령을 사용하는 구문은 다음과 같습니다.

pidof <프로세스 이름>

kill 명령을 사용하여 프로세스 종료

종료하려는 프로세스의 프로세스 ID를 확인한 후 Linux 시스템에서 프로그램을 종료하는 데 사용되는 가장 일반적인 명령은 kill 명령입니다. kill 명령을 사용하는 구문은 다음과 같습니다.

kill <시그널> <프로세스 아이디>

매개변수는 선택 사항이며 kill 명령은 기본적으로 SIGTERM(15) 신호를 보냅니다. 위 표의 숫자 값 또는 실제 신호 이름으로 다른 신호를 보낼 수 있습니다.

pkill 명령을 사용하여 프로세스 종료

프로세스 ID를 찾는 것이 불편하다고 생각되면 pkill 명령을 사용할 수 있습니다. 패턴과 일치하는 프로세스를 찾은 다음 종료합니다. pkill 명령을 사용하는 구문은 다음과 같습니다.

pkill <옵션> <패턴>

pkill 명령과 쌍을 이루는 몇 가지 일반적인 옵션은 다음과 같습니다.

OptionDescription-n프로세스 id와 일치하는 최신 프로세스만 선택-u특정 사용자가 소유한 프로세스만 선택-x패턴과 정확히 일치하는 프로세스 선택

이것은 여러 사용자가 동일한 시스템에서 동일한 프로그램의 다른 인스턴스에서 작업하고 인스턴스 중 하나가 예기치 않은 동작을 시작하는 경우에 특히 중요합니다. 예를 들어 아래 스크린샷에서는 Linux에서 pkill 명령을 사용하여 ‘intel’ 사용자가 소유한 “gedit” 인스턴스를 종료합니다.

pkill -u 인텔 gedit

killall 명령을 사용하여 프로세스 종료

killall 명령은 kill 명령과 유사하게 작동하지만 사용자에 관계없이 프로세스 이름과 일치하는 모든 프로세스를 종료합니다. 기본적으로 달리 지정하지 않으면 SIGTERM 신호를 보냅니다. 주목해야 할 흥미로운 점은 killall 명령은 절대 자신을 죽일 수 없지만 killall 명령의 다른 인스턴스를 종료할 수 있다는 것입니다. killall 명령을 사용하는 구문은 다음과 같습니다.

killall <옵션> <프로세스 이름>

killall 명령과 쌍을 이루는 몇 가지 옵션은 다음과 같습니다.

OptionDescription-rprocess_name을 정규식 패턴으로 해석한 다음 패턴과 일치하는 프로세스를 종료합니다.-지정된 소유자가 소유한 지정된 프로세스를 종료합니다.-o특정 시간보다 오래된(이전에 시작된) 지정된 프로세스를 종료합니다.-y지정된 프로세스보다 어린 시간을 종료합니다( 이후) 특정 시간 이후에 시작되었습니다.

killall 명령은 일련의 동일한 프로세스 또는 특정 소유자가 소유한 모든 프로세스를 종료하는 데 유용할 수 있습니다. 여기 예제에서는 Linux에서 killall 명령을 사용하여 “500초 동안 절전” 프로세스를 모두 종료합니다.

  Raspberry Pi 3에서 RetroPie 설정: 빠른 가이드

killall -v 수면

top/ htop 명령을 사용하여 Linux 프로세스 종료

이 프로세스 종료 방법은 어떤 프로세스가 최대 리소스를 소비하고 있는지 전혀 모를 때 유용합니다. 두 명령 모두에서 실행 중인 모든 프로세스 또는 좀비 프로세스를 탐색하고 신속하게 종료할 수 있습니다. top 명령을 사용하여 리소스를 모니터링하려면 터미널에서 다음 구문을 사용하십시오.

맨 위

출력 이해:

top 명령의 기본 출력은 다음과 같은 열로 나뉩니다.

  • PID – 실행 중인 프로세스의 프로세스 ID를 보여줍니다.
  • 사용자 – 프로세스의 소유자를 보여줍니다.
  • PR – 운영 체제에서 할당한 프로세스의 우선 순위 값을 보여줍니다.
  • NI – 태스크의 우선 순위를 수동으로 제어하기 위해 사용자 간격 값을 할당하는 것과 같은 좋은 값을 보여줍니다.
  • VIRT – 프로세스에서 사용하는 가상 메모리의 양을 보여줍니다.
  • RES – 프로세스에서 사용하는 물리적 메모리의 양을 보여줍니다.
  • SHR – 다른 프로세스가 공유하는 메모리 양을 보여줍니다.
  • S – 다음과 같은 프로세스의 현재 상태를 보여줍니다.
    • D – 중단 없는 수면
    • R – 달리기
    • S – 수면
    • 티 – 중지
    • Z – 좀비
  • %CPU – 프로세스에서 사용하는 CPU 양을 백분율로 표시합니다.
  • %MEM – 프로세스에서 사용하는 RAM의 양을 백분율로 표시합니다.
  • TIME+ – 프로세스의 총 실행 시간을 표시합니다.
  • 명령 – 프로세스에 대해 호출된 명령을 표시합니다.
  • 종료하려는 작업의 프로세스 ID를 모르는 경우 화살표 키를 사용하여 목록을 탐색하거나 Linux의 프로세스 테이블에서 프로세스 이름을 검색하십시오.

    프로세스 이름을 검색하려면 키보드의 ‘L’을 누르고 검색하려는 프로세스 이름을 입력하십시오. 악의적인 프로세스를 찾으면 키보드에서 ‘k’를 눌러 프로세스를 종료합니다. 이제 프로세스 ID를 입력하거나 현재 강조 표시된 프로세스에 그대로 두고 ‘ENTER’를 누릅니다. 다음으로 종료 신호를 입력한 후 ‘ENTER’를 누르면 프로그램이 종료됩니다. 터미널로 돌아가려면 키보드에서 ‘q’를 누르세요.

    top 명령은 실행 중인 모든 프로세스에 대한 프로세스 ID, 메모리 사용량 등의 세부 정보를 표시하지만 키 매핑이나 사용 방법을 표시하지 않기 때문에 초보자에게는 적합하지 않습니다. 반면에 htop 명령은 명령줄 도구에 대해서도 보다 사용자 친화적인 인터페이스를 제공합니다. 또한 별도의 보기에 모든 세부 정보를 표시하므로 터미널 창을 어지럽히지 않습니다. 대부분의 배포판에는 사전 설치되어 있지 않으며 Linux에 htop을 설치하려면 다음 명령을 사용해야 합니다.

      Ubuntu에서 Tor 브라우저 번들을 설정하는 방법

    sudo apt 설치 -y htop

    htop을 사용하여 Linux에서 프로세스를 관리하려면 아래 명령을 사용하십시오.

    htop

    프로그램을 종료하려면 종료하려는 프로세스 이름으로 이동하고 ‘F9’를 누른 다음 Enter 키를 누릅니다. 프로그램을 검색하고 종료해야 하는 경우 키보드에서 ‘F3’을 누르고 이름을 입력한 다음 Enter 키를 누릅니다. 프로세스 이름이 강조 표시되고 F9를 누른 다음 키보드에서 Enter를 눌러 프로세스를 종료합니다.

    Linux에서 시스템 모니터를 통해 프로세스 종료

    명령줄 방법이 어렵다고 생각되면 모든 Linux 배포판에서 사용할 수 있는 내장 시스템 모니터 도구를 사용할 수 있습니다. 작동 방식을 알아보려면 응용 프로그램 메뉴에서 시스템 모니터 도구를 열고 아래 단계를 따르십시오.

    1. 시스템 모니터 도구가 열리면 상단에 프로세스, 리소스 및 파일 시스템이라는 세 개의 탭이 표시됩니다. 프로세스를 관리하려면 “프로세스” 탭으로 이동하세요. 여기에서 현재 실행 중인 모든 프로세스를 볼 수 있습니다. 프로세스 이름을 검색하려면 ‘CTRL+F’를 누르십시오. 종료하려는 프로세스 이름을 클릭하고 “프로세스 종료”를 클릭하십시오.

    2. 그러면 프로세스를 종료할지 여부를 확인하는 메시지가 표시됩니다. 계속해서 큰 빨간색 “프로세스 종료” 버튼을 클릭하여 Linux에서 프로세스를 종료합니다.

    자주 묻는 질문

    Linux에서 모든 프로세스를 어떻게 중지합니까?

    Linux에서 특정 사용자에 대한 모든 프로세스(로그인 셸, 초기화 및 커널 관련 프로세스 제외)를 중지해야 하는 경우 다음 구문에 따라 pkill 명령 또는 killall 명령을 사용합니다.

    pkill -u <사용자 이름>

    killall -u <사용자 이름>

    초기화 시스템을 포함하여 모든 사용자에 대해 모든 프로세스를 종료해야 하는 경우 키보드에서 ‘ALT + Prt Sc + o’ 키를 누릅니다.

    프로세스를 종료해도 괜찮습니까?

    필수적이지 않은 백그라운드 프로세스나 많은 시스템 메모리를 소비하는 사용자 프로세스를 닫으면 이제 다른 프로세스에서 사용할 수 있는 리소스를 확보할 수 있습니다. 그러나 프로세스를 종료하기 전에 필수 운영 체제 프로세스를 종료하지 않는지 확인하십시오.

    Linux의 백그라운드 프로세스는 무엇입니까?

    Linux에서 백그라운드 프로세스는 셸 인스턴스나 사용자 개입 없이 실행할 수 있는 프로세스입니다. top, htop, ps 등의 명령을 사용하여 볼 수 있습니다.

    좀비 프로세스란?

    사용자에 의해 종료되었지만 여전히 메모리를 점유하고 있는 프로세스를 좀비 프로세스라고 합니다.

    Linux에서 CTRL + Z는 무엇을 합니까?

    Linux에서 CTRL + Z를 사용하면 프로세스를 일시 중단하고 백그라운드에서 보내는 SIGTSTP 신호를 보냅니다. 프로세스가 백그라운드에서 일시 중단된 상태이면 포그라운드로 다시 돌아올 때까지 프로세스를 종료할 수 없습니다.

    Linux에서 프로세스를 쉽게 종료

    메모리 호깅 프로세스를 죽이는 것은 모든 사용자가 배워야 하는 매우 중요한 작업입니다. 이 기사에서는 killall 및 pkill과 같은 명령을 포함한 명령줄 방법과 Linux에서 프로세스를 종료하는 GUI 방법을 모두 보여주었습니다. top 및 htop과 같은 널리 사용되는 도구를 사용하여 Linux PC에서 프로세스를 관리하는 방법도 자세히 설명했습니다. 이러한 도구를 사용하여 프로세스를 종료하는 동안 문제가 발생하면 아래 의견에 알려주십시오.