더북(TheBook)

3.7 리눅스 프로세스 관리하기

앞에서 약속한 대로 이제부터 리눅스 프로세스 관리를 다시 살펴보겠다. 프로세스를 어떻게 관리해야 하는지 알아야 OpenSSH 같은 프로그램이 어떻게 처리되는지 제대로 알게 되고, 장기적으로 일반적인 시스템 관리와 문제 해결을 더욱 효율적으로 할 수 있다. 그렇지만 특정 주제에 당장 뛰어들고 싶다면 이 절은 넘어가도 좋다. 이 절을 읽지 않아도 다른 부분을 이해하는 데 문제는 없다.

systemctl이 어떤 것이고 실제로 하는 일이 무엇일까? 이 문제에 제대로 답하려면 먼저 리눅스가 시스템 프로세스를 관리하는 방법을 대략이나마 알고 있어야 한다. 그리고 새 친구를 사귀는 일이 언제나 멋진 일인 것처럼 몇 가지 프로세스 추적 도구를 배우면 시스템이 어떻게 돌아가는지 더 쉽게 이해할 수 있다.

이미 알고 있겠지만, 소프트웨어는 사람을 대신해 컴퓨터 하드웨어를 제어하는 명령을 담은 프로그램 코드다. 프로세스는 실행 중인 소프트웨어 프로그램의 인스턴스다. OS는 컴퓨터 하드웨어 리소스를 효율적으로 사용하고자 인스턴스들(즉, 프로세스들)을 정리하고 관리하는 도구다.

복잡한 멀티프로세스와 다중 사용자 환경에서 프로세스를 관리하는 일은 간단한 작업이 아니다. 프로세스를 관리하려면 움직이는 여러 개체를 긴밀히 제어할 수 있는 일종의 교통경찰이 필요한데(그림 3-4), 그것이 바로 systemctl이다.

▲ 그림 3-4 시스템 서비스의 가용성과 응답성은 systemd의 systemctl 프로세스 관리자가 관리한다

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.