윈도우즈(Windows) 운영체제의 작업관리자(Tasks Manager)는 시스템 관리에 없어서는 안될 중요한 프로그램이다. 왜냐하면 멀쩡했던 프로그램도 당신이 사용하는 컴퓨팅 환경에서는 언제라도 동작이 멈춰 버릴 수 있고, 그때마다 프로세스를 강제 종료해야 하기 때문이다. 그래서인가? 우리네 손가락은 습관적으로 키보드 자판의 [CTRL + ALT + DELETE] 키 위에 대기하고 있다.
이렇게 프로그램이 자주 멈추는 문제가 발생하는 이유는 당신이 멍청하거나, 못생기거나, 뚱뚱하기 때문은 아니다. 혹은 인터넷 뱅킹이나 결제 시에 설치되는 무분별한 보안 프로그램 때문도 아니다. 그렇다고 완전무결한 시스템 운영체제 때문도 아닌 것을 우리는 잘 알고 있다. 그렇다. 아쉽게도 필자 역시 원인을 명확하게 알지 못한다.
이유야 어찌되었든, 윈도우즈의 작업관리자는 매우 유용한 프로그램임에는 틀림없다. 그렇다면 리눅스에는 이를 대체 할 프로그램은 없는 것일까? 다행스럽게도 몇 명의 개발자(Kevin Vandersloot, Benoît Dejean, Chris Kühl)가 만들고 발전시킨 그놈의 싯템 모니터(Gnome-System-Monitor, 발음이 약간 강하기는 하지만 욕은 아니다.)가 있다.
그놈의 싯템 모니터는 아래와 같이 3개의 탭으로 나누어져 있으며 각각의 탭에는 다음과 같이 `프로세스`, `자원`, `파일스스템` 정보를 보여주고 있다. 그 중에서도 자원 탭의 그래프는 윈도우 작업 관리자보다 유려한 모습을 보여준다.
당신의 얼굴을 보고 멈춰버린… 아, 아니… 프로그램 실행 중에 예기치 못한 오류에 의해 혹은 비정상적으로 종료되어 멈춰버린 프로그램의 프로세스를 종료하는 기능은 프로세스 탭에 있다. 종료를 원하는 프로그램의 프로세스를 목록에서 찾은 후, 마우스 커서를 가져가 우측 버튼을 누르면 나타나는 컨텍스트 메뉴(Context Menu)에서 [프로세스 끝내기(E)] 혹은 [프로세스 죽이기(K)] 중에서 선택하여 종료시킨다.
윈도우즈 작업관리자도 그렇고, 리눅스의 그놈의 싯템 모니터도 그렇고, 멈춰버린 프로세스를 종료시키는 방법이 두 가지가 존재하는 이유는 두 명령의 근본적인 차이가 있기 때문이다.
`프로세스 끝내기`는 프로세스에게 멈추라고 말하는 거라면, `프로세스 죽이기`는 프로세스의 의지와는 상관없이 강제로 멈춰 버린다. 만약에 종료되는 프로세스가 대 용량의 파일을 디스크에 기록하는 중이라면, `프로세스 멈추기`는 안전하게 파일 기록을 중지하고 멈출 것이고, `프로세스 죽이기`는 파일을 디스크에 쓰던 중에 그냥 멈춰버린다. 프로그램의 특성에 따라 다르겠지만, 후자의 경우 디스크에 스크래치(Bad Sector)를 만들 가능성이 높다.
리눅스에서도 마우스 클릭만으로 프로세스를 종료 할 수 있다는 것은 매우 놀랍고 즐거운 것이지만, 아쉽게도 데몬으로 실행중인 프로세스는 그놈의 싯템 모니터에 나타나지 않는다. 필자는 웹 개발이 주 업무이므로 로칼 시스템에 아파치를 설치하여 실행하고 있지만, 그놈의 싯템 모니터에서는 아파치가 실행되고 있는 것을 확인 할 수 없다.
이와 같은 이유로, 데스크탑 환경에서 실행되는 프로세스는 그놈의 싯템 모니터로 관리 할 수 있지만 데몬 형태로 실행되는 프로세스는 별도의 프로그램을 추가로 사용해야 한다. 이에 대한 이야기도 다음에 해보려 한다.