跳至主要內容

进程管理


进程管理

ps

ps命令用来列出进程信息。

$ ps
PID TTY           TIME CMD
5198 pts/1    00:00:00 bash
10129 pts/1   00:00:00 ps

不带任何参数时,ps只列出与当前Session相关的进程。输出结果中,PID是进程ID、TTY是进程的终端号(如果显示?,则表示进程没有终端),TIME是消耗的CPU时间,CMD是触发进程的命令。

x参数列出所有进程的详细信息,包括不在当前Session的信息。

$ ps x
PID TTY   STAT   TIME COMMAND
2799 ?    Ssl    0:00 /usr/libexec/bonobo-activation-server –ac
2820 ?    Sl     0:01 /usr/libexec/evolution-data-server-1.10 --

这时的输出结果,会多出STAT一栏,表示状态。它的各种值如下。

aux参数可以显示更多信息。

$ ps aux
USER   PID  %CPU  %MEM     VSZ    RSS  TTY   STAT   START   TIME  COMMAND
root     1   0.0   0.0    2136    644  ?     Ss     Mar05   0:31  init
root     2   0.0   0.0       0      0  ?     S<     Mar05   0:00  [kt]

输出结果包含的列的含义如下。

top

top命令可以查看机器的当前状态。

$ top

它的输出结果分为两部分,最上面是系统概要,下面是进程列表,以 CPU 的使用率排序。

输出结果是动态更新的,默认每三分钟更新一次。

jobs

jobs命令用来查看后台任务。

$ jobs
[1]+ Running            xlogo &

输出结果之中,每个后台任务会有一个编号。上面结果中,xlogo的编号是1+表示正在运行。

fg

fg命令用于将后台任务切换到前台。

$ fg %1

fg命令之后,跟随着一个百分号和工作序号,用来指定切换哪一个后台任务。如果只有一个后台任务,那么fg命令可以不带参数。

bg

bg命令用于将一个暂停的前台任务,转移到后台。只有暂停的任务,才能使用bg命令,因为正在运行的任务,命令行是无法输入的。

$ bg %1

Ctrl + z可以暂停正在运行的前台任务。

kill

kill命令用于杀死进程。它的参数是进程ID。

$ kill 28401

kill命令的实质是操作系统向进程发送信号。在使用 Ctrl-c 的情况下,会发送一个叫做 INT(中断)的信号;当使用 Ctrl-z 时,则发送一个叫做 TSTP(终端停止)的信号。

kill命令可以用来向进程发送指定信号。

$ kill [-signal] PID

下面是常见信号。

-l参数可以列出所有信号。

$ kill -l

killall

killall命令用于向指定的程序或用户发送信号。

$ killall [-u user] [-signal] name

其他进程相关命令