Ⅰ. Process Status
1. 현재 세션의 프로세스
PID | TTY | TIME | CMD |
---|
프로세스 id | 터미널 id | CPU시간(누적 시간) | command (프로세스 이름) |
jsg@jsg-ubuntu:~/testdir$ ps
PID TTY TIME CMD
2799 pts/4 00:00:00 bash
4690 pts/4 00:00:00 ps
2. 시스템 전체 프로세스
jsg@jsg-ubuntu:~/testdir$ ps -e
PID TTY TIME CMD
1 ? 00:00:03 systemd
2 ? 00:00:00 kthreadd
4 ? 00:00:00 kworker/0:0H
...
4663 ? 00:00:00 kworker/1:0
4707 ? 00:00:00 kworker/1:2
4720 ? 00:00:00 kworker/u256:0
4725 pts/4 00:00:00 ps
UID | PPID | C | STIME |
---|
해당 프로세스의 소유권자 | 부모 프로세스 ID | CPU 사용량 (CPU시간/실제시간) | 프로세스 시작 시간 |
jsg@jsg-ubuntu:~/testdir$ ps -f
UID PID PPID C STIME TTY TIME CMD
jsg 2799 2113 0 Dec10 pts/4 00:00:00 bash
jsg 4813 2799 0 03:22 pts/4 00:00:00 ps -f
F | S | PRI | NI | SZ |
---|
프로세스 플래그 | 상태 코드 | 실시간 우선순위 | 나이스 우선순위 | 프로세스 메모리 크기 |
jsg@jsg-ubuntu:~/testdir$ ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 1000 2799 2113 0 80 0 - 7740 wait pts/4 00:00:00 bash
0 R 1000 4843 2799 0 80 0 - 9316 - pts/4 00:00:00 ps
5. 사용자 지정 포맷
jsg@jsg-ubuntu:~$ alias pscpu='ps -eo s,pid,ucmd:12,etime,pcpu,time,pmem,rss --sort=-time,-pcpu | head'
jsg@jsg-ubuntu:~$ pscpu
S PID CMD ELAPSED %CPU TIME %MEM RSS
S 937 Xorg 07:22:21 0.2 00:01:09 2.5 100448
R 1814 compiz 07:22:04 0.1 00:00:52 2.6 105420
S 2113 gnome-termin 07:21:17 0.1 00:00:46 0.9 37284
S 1835 vmtoolsd 07:22:04 0.1 00:00:33 0.8 34768
S 419 vmtoolsd 07:22:23 0.1 00:00:29 0.2 10196
S 1539 ibus-daemon 07:22:08 0.0 00:00:23 0.2 8632
S 1617 ibus-engine- 07:22:07 0.0 00:00:08 0.1 7592
S 1851 nautilus 07:22:04 0.0 00:00:07 1.6 67832
S 1846 gnome-softwa 07:22:04 0.0 00:00:06 2.9 119664
jsg@jsg-ubuntu:~$ alias psmem='ps -eo s,pid,ucmd:12,etime,pcpu,time,pmem,rss --sort=-pmem,-rss | head'
jsg@jsg-ubuntu:~$ psmem
S PID CMD ELAPSED %CPU TIME %MEM RSS
S 1846 gnome-softwa 07:22:09 0.0 00:00:06 2.9 119664
S 1814 compiz 07:22:09 0.1 00:00:52 2.6 105420
S 937 Xorg 07:22:26 0.2 00:01:09 2.5 100448
S 1851 nautilus 07:22:09 0.0 00:00:07 1.6 67832
S 1826 evolution-ca 07:22:09 0.0 00:00:00 1.5 60460
S 1886 evolution-ca 07:22:08 0.0 00:00:00 1.2 51060
S 1973 evolution-ca 07:22:07 0.0 00:00:00 1.2 50100
S 1946 fwupd 07:22:08 0.0 00:00:01 1.0 40784
S 2113 gnome-termin 07:21:22 0.1 00:00:46 0.9 37284
Ⅱ. Kill
1. kill 시그널 리스트
jsg@jsg-ubuntu:~$ kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
2. 주요 시그널
시그널 | 영어 | 설명 |
---|
SIGHUP | Hang Up | 세션이 종료될 때(로그아웃 할시) 시스템이 내리는 시그널 |
SIGINT | Interrupt | Ctrl-C 를 통한 종료 요청 시그널 |
SIGKILL | Kill | 강제 종료 시그널 |
SIGSEGV | Segment Violation | 메모리 침범이 일어날 때 시스템이 보내는 시그널 |
SIGTERM | Terminate | 기본값, 종료 요청 시그널 |
SIGTSTP | Temporary Stop | Ctrl-Z 일시 중지 요청 시그널 |
3. 프로세스에 시그널 보내기
$ kill [option] pid
<terminal 1>
jsg@jsg-ubuntu:~$ man kill
<terminal 2>
jsg@jsg-ubuntu:~$ ps -e | grep man
122 ? 00:00:00 charger_manager
5390 pts/4 00:00:00 man
jsg@jsg-ubuntu:~$ kill 5390
# terminal 1이 Terminated라고 뜨는 것을 볼 수 있음
Job Control
1. 백그라운드 프로세스 목록
jsg@jsg-ubuntu:~$ sleep 60
[1]+ Stopped sleep 60
jsg@jsg-ubuntu:~$ sleep 120
[2]+ Stopped sleep 120
jsg@jsg-ubuntu:~$ sleep 180
[3]+ Stopped sleep 180
jsg@jsg-ubuntu:~$ jobs
[1] Stopped sleep 60 # 1번 프로세스
[2]- Stopped sleep 120 # 2번 프로세스 (- : + 이전 프로세스)
[3]+ Stopped sleep 180 # 3번 프로세스 (+: 최근 프로세스)
2. foreground process로 전환
jsg@jsg-ubuntu:~$ fg %1
sleep 60
3. background process 진행시키기
jsg@jsg-ubuntu:~$ bg %2
[2] sleep 120 &
jsg@jsg-ubuntu:~$ jobs
[1]+ Stopped sleep 60
[2] Running sleep 120 &
[3]- Stopped sleep 180
4. 명령어를 background로 실행
jsg@jsg-ubuntu:~$ sleep 240 &
[4] 4119
jsg@jsg-ubuntu:~$ jobs
[1]+ Stopped sleep 60
[2] Running sleep 120 &
[3]- Stopped sleep 180
[4] Running sleep 240 &
5. background process 종료시키기
jsg@jsg-ubuntu:~$ kill %4
jsg@jsg-ubuntu:~$ jobs
[1]+ Stopped sleep 60
[2] Running sleep 120 &
[3]- Stopped sleep 180
[4] Terminated sleep 240