• ps –报告当前进程快照
• top –显示任务
• jobs –列出活跃的任务
• bg –把一个任务放到后台执行
• fg –把一个任务放到前台执行
• kill –给一个进程发送信号
• killall –杀死指定名字的进程
• shutdown –关机或重启系统
内核线程(守护线程)与用户线程
一、查看进程——ps
1.最简单的查看进程ps
xiaohui@ubuntu:~$ ps
PID TTY TIME CMD TTY是Teletype的简写,指进程的控制终端 TIME字段表示进程所消耗的CPU时间数量
6123 pts/3 00:00:00 bash bash进程
6170 pts/3 00:00:00 ps ps进程
2.ps x告诉ps命令,展示多有的进程,不管他们由什么终端控制
xiaohui@ubuntu:~$ ps x
PID TTY STAT TIME COMMAND STAT是state的简写,表示进程当前的状态
2149 ? Sl 0:00 /usr/bin/gnome-keyring-daemon --daemonize --login ?表示没有终端
2151 ? Ss 0:00 upstart --user
22
39 ? Ss 0:00 dbus-daemon --fork --session
………………
进程状态
R—运行
S—正在睡眠,等待一个事件
D—不可中断睡眠,进程正在等待I/O
T—已经停止
Z—个死进程或“僵尸”进程,已经终止的进程,但还没来得及清理
<—一个高优先级进程
N—低优先级进程
3.ps aux
xiaohui@ubuntu:~$ ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND USER用户ID %CPU以百分比表示CPU使用率 %MEM内存使用率 VSZ虚拟内存大小 root 1 0.0 0.3 4300 3472 ? Ss Aug17 0:03 /sbin/init RSS进程占用物理空间大小 START进程运行的起始时间
root 2 0.0 0.0 0 0 ? S Aug17 0:00 [kthreadd]
二、用top命令动态查看进程
top程序连续显示系统进程更新信息(默认每三分钟更新一次)
top 显示结果由两部分组成:最上面是系统概要,下面是进程列表,以 CPU 的使用率排序。
另外,键盘输入h便是显示帮助
输入q表示退出top程序
三、控制进程
linux的程序可以直接通过输入程序名字打开,比如xlogo程序
xiaohui@ubuntu:~$ xlogo 会打开图形用户界面xlogo
四、中断进程——礼貌性的终止这个程序Ctrl-C
Ctrl-C许多(但不是全部)命令行程序可以被中断。
^C
xiaohui@ubuntu:~$
五、把一个进程放置在后台(执行)——& 或 dg
我们想让 shell 提示符返回,却没有终止 xlogo 程序。为达到这个目的,我们把这个程序放到后台执行。
在程序命令之后,加上 “&” 字符:
xiaohui@ubuntu:~$ xlogo &
[1] 6276 6276是PID
xiaohui@ubuntu:~$
执行 jobs 命令,我们可以看到这个进程的工作序号(叫做jobspec)
xiaohui@ubuntu:~$ jobs
[1]+ Running xlogo & 表示后台正在运行的xlogo程序的工作序号是1
六、程序返回倒前台——fg
一个在后台运行的进程对一切来自键盘的输入都免疫,也不能用 Ctrl-c 来中断它
fg 命令之后,跟随着一个百分号和工作序号(叫做 jobspec)
xiaohui@ubuntu:~$ fg %1
xlogo
然后再可以用Ctrl-c终止xlogo程序
七、停止一个程序——Ctrl-z
停止一个进程,而没有终止它。这样会把一个前台进程移到后台等待。
输入 Ctrl-z,可以停止一个前台进程
^Z
[1]+ Stopped xlogo
xiaohui@ubuntu:~$
使用 fg 命令,可以恢复程序到前台运行,或者用 bg 命令把程序移到后台。
xiaohui@ubuntu:~$ bg %1
[1]+ xlogo &
xiaohui@ubuntu:~$
八、通过kill命令向进程发送信号
格式 kill [-sinal] PID... 默认情况是发送TERM(终止)信号
注意!进程和文件一样,拥有所有者,所以为了能够通过kill命令来给进程发送信号,你必须是进程的所有者(或者是超级用户)
编号 | 名字 | 含义 |
1 | HUP | 挂起 |
2 | INT | 中断 |
9 | KILL | 杀死 |
15 | TERM | 终止 |
18 | CONT | 继续 |
19 | STOP | 停止 |
九、用killalll命令给多个线程发送信号
格式 kill [-u user] [-sinal] name...