728x90
프로세스 목록 보기
ps 명령
- 현재 실행 중인 프로세스의 정보를 출력
- 형식 : ps [옵션]
- 옵션
- -e : 시스템에서 실행 중인 모든 프로세스 정보 출력
- -f : 프로세스에 대한 자세한 정보 출력
- -u uid : 특정 사용자에 대한 모든 프로세스 출력
- 사용 예 : ps, ps –ef, ps aux
현재 단말기의 프로세스 목록 출력
- ps 명령을 옵션 없이 사용하면 현재 쉘이나 단말기 창에서 실행시킨 사용자 프로세스의 정보 출력
$ ps
PID TTY TIME CMD
2570 tty1 00:00:12 bash
6710 tty1 00:00:00 ps
$
프로세스의 상세 정보 출력
- -f 옵션은 프로세스의 상세 정보 출력
$ ps –f
UID PID PPID C STIME TTY TIME CMD
ksshin 2570 1189 0 6월 16 tty1 00:00:12 -bash
ksshin 7174 2570 0 17:42 tty1 00:00:00 ps -f
$
전체 프로세스 목록 출력 (System V 계열)
- -e 옵션은 시스템에서 실행 중인 모든 프로세스 출력
- TTY 값이 ‘?’인 것은 특정 터미널에서 실행되지 않은 프로세스로, 대부분 데몬
$ ps –e
PID TTY TIME CMD
1 ? 00:00:09 init
2 ? 00:00:00 kthreadd
3 ? 00:00:26 ksoftirqd/0
5 ? 00:00:00 kworker/0:0H
7 ? 00:00:24 rcu_sched
......
$
- 전체 프로세스의 상세 정보 확인은 –e 옵션과 –f 옵션을 함께 사용
$ ps –ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 6월 16 ? 00:00:09 /sbin/init
root 2 0 0 6월 16 ? 00:00:00 [kthreadd]
root 3 2 0 6월 16 ? 00:00:26 [ksoftirqd/0]
root 5 2 0 6월 16 ? 00:00:00 [kworker/0:0H]
root 7 2 0 6월 16 ? 00:00:24 [rcu_sched]
......
$
전체 프로세스 목록 출력 (BSD 계열)
- ps aux 명령
$ ps aux | more
UID PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.3 4572 1804 ? Ss 6월 25 0:14 /sbin/init
root 2 0.0 0.0 0 0 ? S 6월 25 0:00 [kthread]
root 3 0.0 0.0 0 0 ? S 6월 25 0:46 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< 6월 25 0:00 [kworker/0:0H]
root 7 0.0 0.0 0 0 ? S 6월 25 0:43 [rcu_sched]
......
$
특정 사용자의 프로세스 목록 출력
- -u 옵션은 특정 사용자가 실행시킨 프로세스의 목록 확인
$ ps –u ksshin
PID TTY TIME CMD
1693 ? 00:00:05 gnome-keyring-d
1695 ? 00:00:05 init
1767 ? 00:00:00 ssh-agent
1772 ? 00:00:47 dbus-daemon
1780 ? 00:00:00 upstart-event-b
......
$
특정 프로세스 정보 검색 명령
- ps 명령 이용
$ ps –ef | grep bash
ksshin 2570 1189 0 6월 16 tty1 00:00:12 –bash
ksshin 7205 2570 0 18:01 tty1 00:00:00 grep--color=auto bash
$
- pgrep 명령 이용
- 지정한 패턴과 일치하는 프로세스의 정보를 출력
- 형식 : pgrep [옵션] [패턴]
- 사용 예 : pgrep bash, pgrep –l –u ksshin
$ pgrep –l bash
2570 bash
$
프로세스의 종료
- 응답 없는 프로세스나 불필요한 프로세스를 강제로 종료시키려면 해당 프로세스의 PID를 알아야 함
- ps –ef 명령으로 프로세스의 PID와 PPID 확인 가능
- PPID로 부모 프로세스를 종료시켜야 할 때도 있음
- 프로세스 종료시키는 명령 : kill, pkill
- 프로세스에 시그널을 보내 프로세스가 종료되게 함
kill 명령 이용해 프로세스 종료
- kill 명령
- 지정한 시그널을 프로세스에 보냄
- 9번(SIGKILL)은 강제 종료, 15번(SIGTERM)은 프로세스 종료, 2번(SIGINT)은 인터럽트
- 시그널을 지정하지 않으면 15번(SIGTERM) 시그널을 보냄
- 형식 : kill [시그널] PID …
- 시그널
- -9 : 프로세스 강제 종료
- -15 : 프로세스 종료. 프로세스가 관련 파일을 정리 후 종료. 종료되지 않는 프로세스가 있을 수 있음
pkill 명령 이용해 프로세스 종료
- 프로세스 번호 대신 프로세스의 명령 이름(CMD)으로 프로세스를 찾아 종료시킴
$ sleep 100&
[1] 7386
$ sleep 200&
[2] 7387
$ ps –f
UID PID PPID C STIME TTY TIME CMD
ksshin 2570 1189 0 6월 16 tty1 00:00:12 -bash
ksshin 7386 2570 0 17:42 tty1 00:00:00 sleep 100
ksshin 7387 2570 0 17:42 tty1 00:00:00 sleep 200
ksshin 7174 2570 0 17:42 tty1 00:00:00 ps -f
$
$ pkill sleep
[1]- Terminated sleep 100
[2]+ Terminated sleep 200
$ ps –f
UID PID PPID C STIME TTY TIME CMD
ksshin 2570 1189 0 6월 16 tty1 00:00:12 -bash
ksshin 7393 2570 0 17:42 tty1 00:00:00 ps -f
$
프로세스 관리 도구
- ps 명령으로는 현재 프로세스 목록을 확인만 할 수 있음
- 이 정보를 가공하여 사용자가 보기 편하게 다양한 기능을 제공하는 도구
pstree 명령
- 프로세스의 상태를 트리(Tree) 구조로 출력해 주는 명령
- 왼쪽이 부모 프로세스, 오른쪽이 자식 프로세스
- 형식 : pstree [옵션]
- 사용 예 : pstree -h
top 명령
- 주기적으로 현재 실행 중인 프로세스에 대한 정보 출력
- 자세한 요약 정보를 상단에 출력, 각 프로세스 정보를 하단에 출력
- 형식 : top [옵션]
728x90
'프로그래밍 > Unix' 카테고리의 다른 글
[유닉스] 디스크 사용 정보, df 명령어, du 명령어 (0) | 2020.04.09 |
---|---|
유닉스 포그라운드(foreground), 백그라운드(background) (0) | 2020.03.24 |
유닉스 프로세스의 개념과 종류 (0) | 2020.03.23 |
유닉스 기본 접근 권한 설정 (0) | 2020.03.23 |
유닉스 접근 권한 변경 (0) | 2020.03.23 |