Computer >> 컴퓨터 >  >> 시스템 >> Linux

리눅스에서 멈춘 프로그램 강제 종료하는 방법 총정리

리눅스는 안정성이 뛰어난 운영체제로 알려져 있지만, 때때로 애플리케이션이나 프로그램이 응답하지 않고 멈추는 문제가 발생할 수 있습니다.

다행히 리눅스에서 멈춘 프로그램을 종료하는 방법은 다양합니다. 이 글에서는 초보자도 쉽게 따라 할 수 있도록 대표적인 방법들을 하나씩 소개합니다.

kill 명령어로 프로세스 종료하기

kill 명령어를 사용하려면 먼저 응답하지 않는 프로그램의 PID(프로세스 ID)를 알아내야 합니다.

PID는 리눅스에서 프로세스가 생성될 때 자동으로 부여되는 고유 번호입니다. 이 방법의 장점은 모든 리눅스 배포판에서 동일하게 작동한다는 점입니다.

프로세스와 PID 찾기

어떤 프로세스가 멈췄는지 모른다면 topps라는 두 가지 도구를 활용하면 됩니다.

top은 명령줄 기반의 시스템 모니터링 도구입니다. 터미널에 다음과 같이 입력해 보세요.

$ top

화면에 많은 정보가 표시됩니다. 예를 들어 크롬(Chrome)이 멈춘 프로그램이라고 가정해 보겠습니다.

현재 실행 중인 크롬 인스턴스는 다음과 같은 PID를 가지고 있습니다.

  • 3827
  • 3919
  • 10764
  • 11679

종료하려는 크롬 인스턴스를 정확히 확인하려면 ps 명령어와 grep을 조합해 출력 결과를 필터링하면 됩니다.

아래 명령어를 입력하면 크롬과 관련된 실행 중인 프로세스 목록을 볼 수 있습니다.

ps aux | grep chrome

프로세스 종료하기

이제 멈춘 프로세스를 종료하는 데 필요한 두 가지 정보, 즉 프로세스 이름과 ID를 확보했습니다. 아래 명령어를 사용할 수 있습니다.

  • kill – PID로 프로세스 종료
  • killall – 프로세스 이름으로 종료

두 명령어 모두 원하는 결과에 따라 다양한 시그널(signal)을 함께 사용할 수 있습니다.

예를 들어, 응답 없는 프로세스를 종료한 후 다시 시작하고 싶다면 HUP(hang up) 시그널을 사용합니다.

그 외 주요 kill 시그널은 다음과 같습니다.

  • SIGSTOP: 프로세스 일시 정지
  • SIGINT: 키보드 입력으로 프로세스 중단
  • SIGKILL: 프로세스 강제 종료

앞서 ps 명령어로 확인한 크롬의 PID가 3827, 3919, 10764, 11679였습니다. 네 개의 크롬 인스턴스를 모두 종료하려면 아래 명령어를 차례로 실행하면 됩니다.

  • kill -9 3827
  • kill -9 3919
  • kill -9 10764
  • kill -9 11679

또는 killall을 사용해 하나의 명령어로 동일한 작업을 수행할 수도 있습니다.

killall -9 chrome

X 버튼 클릭으로 종료하기

응답하지 않는 프로그램은 보통 버튼이 회색으로 비활성화되어 있거나 메뉴가 작동하지 않습니다. 심한 경우 앱 창조차 화면에서 움직일 수 없을 때가 있습니다.

이때 가장 간단한 해결책은 창 모서리의 X 버튼을 클릭하는 것입니다. 운영체제에 따라 버튼 위치는 왼쪽 또는 오른쪽 상단에 있습니다.

X 버튼을 클릭하면 대기(Wait)강제 종료(Force Quit) 두 가지 옵션이 있는 대화 상자가 나타납니다. 프로그램을 끝내려면 강제 종료를 클릭하세요.

시스템 모니터(System Monitor)로 종료하기

우분투(Ubuntu)의 기본 시스템 모니터는 GNOME입니다. 우분투 리눅스에서 실행 중인 모든 프로세스 정보를 한눈에 확인할 수 있습니다.

사용자는 GUI(그래픽 사용자 인터페이스)를 통해 중지(Stop), 계속(Continue), 종료(Kill) 등 다양한 작업을 수행할 수 있습니다.

시스템에 GNOME 시스템 모니터가 설치되어 있지 않다면 아래 단계로 설치할 수 있습니다. 이 방법은 모든 우분투 버전은 물론 리눅스 민트(Linux Mint)와 데비안(Debian)에서도 작동합니다.

  • 터미널 단축키 CTRL+ALT+T를 눌러 터미널을 연 뒤, 아래 명령어로 GNOME 시스템 모니터를 설치합니다.

sudo apt-get install gnome-system-monitor

  • 터미널에서 다음 명령어로 시스템 모니터를 실행합니다.

gnome-system-monitor

  • 또는 GUI에서 애플리케이션 목록으로 이동해 검색창에 system monitor를 입력하고 아이콘을 클릭해 열 수도 있습니다.
  • 시스템 모니터를 연 후 프로세스(Processes) 탭에서 응답하지 않거나 멈춘 프로그램을 찾아 선택하고 마우스 오른쪽 버튼을 클릭합니다.

그러면 여러 옵션이 나타나는데, 각각의 역할은 다음과 같습니다.

  • 프로세스 끝내기(End Process): 임시 파일을 정리하면서 애플리케이션을 정상 종료합니다.
  • 프로세스 중지(Stop Process): 프로세스를 일시 정지하여 나중에 다시 이어서 작업할 수 있게 합니다.
  • 프로세스 죽이기(Kill Process): 가장 강력한 옵션으로, '끝내기'로도 종료되지 않는 멈춘 프로그램을 강제로 닫을 때 사용합니다.

xkill 명령어 활용하기

xkill은 우분투에 기본 설치된 종료 유틸리티로, 응답하지 않는 리눅스 프로세스를 강제로 종료할 수 있습니다.

다른 배포판에서는 터미널에서 아래 명령어로 설치할 수 있습니다.

sudo apt install xorg-xkill

설치 후 터미널에 xkill을 입력해 실행하세요. 그러면 마우스 커서가 해골 또는 x 모양으로 바뀝니다. 이 상태에서 멈춘 프로그램 창을 왼쪽 클릭하면 해당 창이 즉시 닫힙니다.

pgrep & pkill 명령어 활용하기

많은 리눅스 시스템에서는 앞서 소개한 killps 작업을 더 간편하게 수행할 수 있는 pkillpgrep 단축 명령어를 제공합니다.

pgrep은 프로세스 이름과 ID를 보여줍니다. 예를 들어 pgrep chrome을 실행하면 실행 중인 크롬 프로세스의 ID를 확인할 수 있고, 그 ID를 kill 명령어와 함께 사용하면 됩니다.

pkill 7012

또는 이 과정을 생략하고 아래 명령어 하나로 크롬의 모든 인스턴스를 종료할 수 있습니다.

pkill chrome

이 방법은 애플리케이션이 하나만 실행 중일 때 특히 유용합니다. 반면, 같은 프로그램의 창이 여러 개 열려 있고 그중 하나만 종료하고 싶다면 xkill을 사용하는 것이 좋습니다.

마무리

프로그램이 멈췄을 때 시스템을 재시작하는 것이 항상 최선의 선택은 아닙니다. 특히 여러 프로젝트를 동시에 진행 중이거나 저장하지 않은 작업이 있을 때는 더욱 그렇습니다.

위에서 소개한 방법들을 활용하면 재부팅 없이도 리눅스에서 멈추거나 응답하지 않는 프로그램을 안전하고 빠르게 종료할 수 있습니다.