Linux Process Commands

리눅스에서 프로세스 관리와 관련된 명령어는 시스템의 프로세스를 모니터링하고 제어하는 데 사용됩니다. 여기 몇 가지 주요 프로세스 관련 명령어와 그 사용법을 자세히 설명합니다.

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를 출력합니다.

이 명령어들은 리눅스 시스템에서 프로세스를 모니터링하고 제어하는 데 매우 유용합니다. 각 명령어의 다양한 옵션과 사용법을 잘 익히면 시스템 관리와 문제 해결에 큰 도움이 됩니다.

Leave a Reply

Your email address will not be published. Required fields are marked *