进程的概念
进程是一个实体,每个进程都有自己的地址空间,一般情况下,包括文本区域(存储处理器执行的代码)、数据区域(存储变量在程序执行期间使用的动态分配的内存)和堆栈(存储着活动过程中的指令和本地变量)。
进程是一个“执行中的程序”,程序是一个没有生命的实体,处理器赋予程序生命时,它才能成为有生命的实体,我们称其为进程。
查看进程的命令
-
查看进程的命令:ps
ps[options]
常见用法:ps aux
显示占用的CPU使用率、占用的内存使用率、占用的虚拟内存大小、占用的内存大小、进程的状态、进程开始时间以及执行时间
linux@linux:~$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.2 4444 2416 ? Ss 09:15 0:00 /sbin/init
root 2 0.0 0.0 0 0 ? S 09:15 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 09:15 0:00 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< 09:15 0:00 [kworker/0:0H]
root 7 0.0 0.0 0 0 ? S 09:15 0:00 [rcu_sched]
root 8 0.0 0.0 0 0 ? S 09:15 0:00 [rcu_bh]
root 9 0.0 0.0 0 0 ? S 09:15 0:00 [migration/0]
root 10 0.0 0.0 0 0 ? S 09:15 0:01 [watchdog/0]
root 11 0.0 0.0 0 0 ? S< 09:15 0:00 [khelper]
root 12 0.0 0.0 0 0 ? S 09:15 0:00 [kdevtmpfs]
root 13 0.0 0.0 0 0 ? S< 09:15 0:00 [netns]
常见用法:ps -elf
不仅显示自己的进程编号,还会显示父进程的编号。
linux@linux:~$ ps -elf
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
4 S root 1 0 0 80 0 - 1111 - 09:15 ? 00:00:00 /sbin
1 S root 2 0 0 80 0 - 0 - 09:15 ? 00:00:00 [kthr
1 S root 3 2 0 80 0 - 0 - 09:15 ? 00:00:00 [ksof
1 S root 5 2 0 60 -20 - 0 - 09:15 ? 00:00:00 [kwor
1 S root 7 2 0 80 0 - 0 - 09:15 ? 00:00:00 [rcu_
1 S root 8 2 0 80 0 - 0 - 09:15 ? 00:00:00 [rcu_
1 S root 9 2 0 -40 - - 0 - 09:15 ? 00:00:00 [migr
5 S root 10 2 0 -40 - - 0 - 09:15 ? 00:00:01 [watc
1 S root 11 2 0 60 -20 - 0 - 09:15 ? 00:00:00 [khel
-
查看进程的命令:top
通常会全屏显示,而且会随着进程状态的变化不断更新整个系统的信息也会显示。top命令显示进程是实时的,如果想退出,输入q键。
linux@linux:~$ top
top - 11:15:07 up 2:00, 3 users, load average: 0.01, 0.05, 0.05
Tasks: 182 total, 1 running, 181 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.3 us, 0.7 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 1025328 total, 919544 used, 105784 free, 19148 buffers
KiB Swap: 1046524 total, 768 used, 1045756 free. 411100 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1054 root 20 0 192164 37828 15252 S 0.7 3.7 0:10.37 Xorg
2256 linux 20 0 223592 65196 35020 S 0.3 6.4 0:20.53 compiz
2569 linux 20 0 70572 17480 11908 S 0.3 1.7 0:03.59 gnome-terminal
1 root 20 0 4444 2416 1416 S 0.0 0.2 0:00.86 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:00.50 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
7 root 20 0 0 0 0 S 0.0 0.0 0:00.45 rcu_sched
-
查看进程的命令:pstree
将所有进程以树状图显示,树状图将会以pid(如果有指定)或是以init这个基本进程为根,如果有指定使用者id,则树状图会只显示该使用者所拥有的进程。
linux@linux:~$ ptree
The program 'ptree' is currently not installed. You can install it by typing:
sudo apt-get install adacontrol
linux@linux:~$ pstree
init─┬─ModemManager───2*[{ModemManager}]
├─NetworkManager─┬─2*[dhclient]
│ ├─dnsmasq
│ └─3*[{NetworkManager}]
├─VGAuthService
├─accounts-daemon───2*[{accounts-daemon}]
├─acpid
├─avahi-daemon───avahi-daemon
├─bluetoothd
├─colord───2*[{colord}]
├─cron
├─cups-browsed
├─cupsd───dbus
├─dbus-daemon
├─6*[getty]
├─gnome-keyring-d───5*[{gnome-keyring-d}]
├─kerneloops
├─lightdm─┬─Xorg
│ ├─lightdm─┬─init─┬─at-spi-bus-laun─┬─dbus-daemon
│ │ │ │ └─3*[{at-spi-bus-laun}]
│ │ │ ├─at-spi2-registr───{at-spi2-registr}
│ │ │ ├─bamfdaemon───3*[{bamfdaemon}]
│ │ │ ├─2*[dbus-daemon]
发送信号命令
-
终止进程的命令:kill
kill [-signal] PID signal是信号,PID是进程号
kill发送信号时,如果不指定进程,默认发送的是15号信号。
linux@linux:~$ 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
终止进程3405
linux@linux:~$ kill -9 3405
***********
***********
***********
***********
***********
***********
***********
***********
***********
***********
Killed