리눅스 프로세스 관리: 개념부터 실전 명령어까지

리눅스 운영체제에서 프로세스 관리는 시스템의 안정성과 효율성을 유지하는 핵심 요소입니다. 실행 중인 프로그램을 효과적으로 관리하는 것은 시스템 관리자와 사용자 모두에게 중요한 기술입니다.
📌 1. 프로세스란 무엇인가?
프로세스(Process)는 실행 중인 프로그램의 인스턴스로, 시스템에서 작업을 수행하는 기본 단위입니다. 리눅스에서는 각 프로세스가 고유한 프로세스 ID(PID)를 가지며, 부모-자식 관계를 형성하여 계층적인 구조를 이룹니다.
✅ 프로세스의 종류
- 일반 프로세스: 사용자가 실행한 프로세스 (예: 웹 브라우저, 텍스트 에디터)
- 데몬 프로세스: 백그라운드에서 실행되며 시스템 서비스를 제공 (예: Apache, MySQL)
- 고아 프로세스: 부모 프로세스가 종료되었지만 자식 프로세스가 계속 실행되는 경우
- 좀비 프로세스: 종료되었지만 프로세스 테이블에 남아 있는 프로세스
📌 2. 실행 중인 프로세스 확인
✅ `ps` 명령어
현재 실행 중인 프로세스를 확인할 때 사용합니다.
ps -ef
-e
: 모든 프로세스를 표시-f
: 상세 정보(UID, PID, PPID, 실행 시간 등) 출력
✅ `top` 명령어
실시간으로 CPU, 메모리 사용량과 실행 중인 프로세스를 모니터링합니다.
top
이 명령어를 실행하면 프로세스 목록이 주기적으로 갱신되며, 특정 프로세스를 종료하거나 우선순위를 변경하는 기능을 제공합니다.
📌 3. 프로세스 종료
✅ `kill` 명령어
특정 프로세스를 종료할 때 사용합니다.
kill [시그널] PID
kill -9 PID
: 강제 종료 (SIGKILL)kill -15 PID
: 정상 종료 (SIGTERM, 기본값)
✅ `pkill` 명령어
프로세스 이름을 기준으로 종료할 때 사용합니다.
pkill 프로세스이름
예를 들어, Apache 웹 서버를 종료하려면 다음과 같이 입력합니다.
pkill apache
📌 4. 백그라운드와 포그라운드 작업
✅ `bg` 명령어
일시 중지된 작업을 백그라운드에서 실행할 때 사용합니다.
bg %작업번호
✅ `fg` 명령어
백그라운드에서 실행 중인 작업을 포그라운드로 가져옵니다.
fg %작업번호
작업 번호는 jobs
명령어로 확인할 수 있습니다.
📌 5. 프로세스 우선순위 조정
✅ `nice` 명령어
새로운 프로세스를 실행할 때 우선순위를 지정합니다.
nice -n 우선순위 명령어
✅ `renice` 명령어
실행 중인 프로세스의 우선순위를 변경합니다.
renice 우선순위 -p PID
우선순위 값은 -20(가장 높은 우선순위)에서 19(가장 낮은 우선순위) 사이로 설정할 수 있습니다.
📌 6. 시스템 메모리 사용량 확인
✅ `free` 명령어
현재 시스템의 메모리 사용량을 확인할 때 사용합니다.
free -h
-h
옵션을 사용하면 사람이 읽기 쉬운 단위(GB, MB)로 출력됩니다.
📌 7. 결론
리눅스의 프로세스 관리는 시스템 성능과 안정성 유지에 필수적인 요소입니다.
ps
, top
, kill
등의 명령어를 익히고 활용하면,
시스템 자원 관리와 성능 최적화에 큰 도움이 될 것입니다.
📌 #리눅스 #프로세스관리 #리눅스명령어 #시스템모니터링 #서버관리 #Linux