리눅스에서 프로세스 관리와 관련된 명령어는 시스템의 프로세스를 모니터링하고 제어하는 데 사용됩니다. 여기 몇 가지 주요 프로세스 관련 명령어와 그 사용법을 자세히 설명합니다.
1. ps
– 현재 실행 중인 프로세스 목록 출력
# 현재 터미널의 프로세스 목록 출력
ps
# 시스템 전체의 모든 프로세스 목록 출력
ps aux
# 특정 사용자에 대한 모든 프로세스 목록 출력
ps -u username
# 트리 형식으로 프로세스 출력
ps -ef --forest
ps
명령어는 현재 실행 중인 프로세스 목록을 출력합니다. aux
옵션을 사용하면 시스템 전체의 모든 프로세스를 볼 수 있으며, -ef
옵션은 트리 형식으로 프로세스를 표시합니다.
2. top
– 실시간 시스템 모니터링
# 실시간 시스템 모니터링 시작
top
# 특정 사용자에 대한 프로세스만 표시
top -u username
# 12초 후 종료
top -d 12
top
명령어는 실시간으로 시스템의 프로세스와 리소스 사용 현황을 모니터링합니다. CPU 및 메모리 사용량이 높은 프로세스를 확인하는 데 유용합니다.
3. htop
– 향상된 실시간 시스템 모니터링 (별도 설치 필요)
# 실시간 시스템 모니터링 시작
htop
htop
명령어는 top
의 향상된 버전으로, 더 나은 인터페이스와 다양한 기능을 제공합니다. htop
은 설치가 필요합니다 (sudo apt-get install htop
).
4. kill
– 프로세스 종료
# 특정 PID의 프로세스 종료
kill 1234
# SIGKILL 신호로 강제 종료
kill -9 1234
kill
명령어는 지정된 프로세스를 종료합니다. -9
옵션을 사용하면 강제로 종료할 수 있습니다.
5. pkill
– 프로세스 이름으로 종료
# 특정 이름을 가진 모든 프로세스 종료
pkill firefox
# 특정 사용자에 대한 프로세스 종료
pkill -u username firefox
pkill
명령어는 프로세스 이름으로 종료합니다. -u
옵션을 사용하여 특정 사용자의 프로세스를 종료할 수 있습니다.
6. killall
– 이름으로 모든 프로세스 종료
# 특정 이름을 가진 모든 프로세스 종료
killall firefox
# SIGKILL 신호로 모든 프로세스 강제 종료
killall -9 firefox
killall
명령어는 특정 이름을 가진 모든 프로세스를 종료합니다. -9
옵션을 사용하여 강제로 종료할 수 있습니다.
7. bg
– 백그라운드로 작업 전환
# 백그라운드로 작업 전환
bg
bg
명령어는 포그라운드에서 일시 중지된 작업을 백그라운드에서 실행하도록 전환합니다.
8. fg
– 포그라운드로 작업 전환
# 포그라운드로 작업 전환
fg
fg
명령어는 백그라운드에서 실행 중인 작업을 포그라운드로 전환합니다.
9. jobs
– 현재 쉘의 작업 목록
# 현재 쉘의 작업 목록 출력
jobs
jobs
명령어는 현재 쉘에서 실행 중인 백그라운드 및 포그라운드 작업의 목록을 출력합니다.
10. nice
– 프로세스의 우선순위 설정
# 기본 우선순위로 프로세스 시작
nice -n 10 command
# 우선순위를 -5로 설정하여 프로세스 시작 (root 권한 필요)
sudo nice -n -5 command
nice
명령어는 프로세스를 지정된 우선순위로 시작합니다. 우선순위 값은 -20에서 19까지이며, 값이 낮을수록 우선순위가 높습니다.
11. renice
– 실행 중인 프로세스의 우선순위 변경
# 특정 PID의 프로세스 우선순위 변경
renice -n 10 -p 1234
# 특정 사용자의 모든 프로세스 우선순위 변경
sudo renice -n 10 -u username
renice
명령어는 실행 중인 프로세스의 우선순위를 변경합니다. 우선순위 값은 -20에서 19까지이며, 값이 낮을수록 우선순위가 높습니다.
12. nohup
– 로그아웃 후에도 프로세스 계속 실행
# 로그아웃 후에도 프로세스를 계속 실행
nohup command &
nohup
명령어는 로그아웃 후에도 프로세스를 계속 실행하도록 합니다. 명령어 끝에 &
를 추가하면 백그라운드에서 실행됩니다.
13. pmap
– 프로세스 메모리 맵 출력
# 특정 PID의 메모리 맵 출력
pmap 1234
pmap
명령어는 특정 프로세스의 메모리 맵을 출력합니다. 메모리 사용량 분석에 유용합니다.
14. pstree
– 프로세스 트리 구조 출력
# 프로세스 트리 구조 출력
pstree
pstree
명령어는 트리 구조로 프로세스의 계층 관계를 출력합니다.
15. strace
– 시스템 호출 및 신호 추적
# 특정 명령어의 시스템 호출 및 신호 추적
strace command
# 특정 PID의 시스템 호출 및 신호 추적
strace -p 1234
strace
명령어는 특정 프로세스의 시스템 호출과 신호를 추적합니다. 디버깅 및 문제 해결에 유용합니다.
16. lsof
– 열린 파일 목록 출력
# 시스템 전체의 열린 파일 목록 출력
lsof
# 특정 프로세스의 열린 파일 목록 출력
lsof -p 1234
# 특정 포트를 사용하는 프로세스 확인
lsof -i :80
lsof
명령어는 열린 파일의 목록을 출력합니다. 특정 프로세스의 열린 파일이나 특정 포트를 사용하는 프로세스를 확인할 때 유용합니다.
17. uptime
– 시스템 가동 시간 및 로드 평균 출력
# 시스템 가동 시간 및 로드 평균 출력
uptime
uptime
명령어는 시스템의 가동 시간, 현재 로그인한 사용자 수, 시스템 로드 평균을 출력합니다.
18. pidof
– 프로세스 ID 출력
# 특정 프로세스 이름의 프로세스 ID 출력
pidof sshd
pidof
명령어는 특정 프로세스 이름에 대한 프로세스 ID를 출력합니다.
이 명령어들은 리눅스 시스템에서 프로세스를 모니터링하고 제어하는 데 매우 유용합니다. 각 명령어의 다양한 옵션과 사용법을 잘 익히면 시스템 관리와 문제 해결에 큰 도움이 됩니다.