在Linux中,任何运行中的程序实例都是进程。当你在执行一个程序的时候,就是创建了一个和该程序相关的进程,同一个程序可以有多个进程。
在Linux中,任何运行中的程序实例都是进程。当你在执行一个程序的时候,就是创建了一个和该程序相关的进程,同一个程序可以有多个进程。
进程可以分为前台进程和后台进程:
我们可以用bg和fg命令来切换进程的类型。下面先看下如何用bg命令将进程切换到后台运行:
上面通过bg命令将前台进程切换为了后台进程后,你就可以继续执行其他程序了,不会像前台进程那样阻塞在那。我们还可以用fg命令将其切换回前台进程,fg命令的格式如下:
fg jobname
jobname是后台进程的作业名称,如下所示:
上面通过fg banshee命令将banshee又切回了前台运行。
接下来,我们再看下Linux中其他的,和进程管理相关的命令。
top命令可以将Linux系统中所有运行中的进程信息都显示出来,并且会根据进程的CPU和内存等资源的占用情况,对进程进行排序,资源占用越多,排的越靠前。还能每隔一段时间就根据资源占用情况刷新进程列表,如下所示:
可以按'q'键来退出top命令。以下是进程信息中各列的含义(下表中的示例1和示例2,分别对应上图中第一行和第二行的数据):
列名 | 列描述 | 示例1 | 示例2 |
---|---|---|---|
PID | 进程ID(进程在内核中的唯一标识) | 1525 | 961 |
USER | 进程所属用户的用户名 | home | root |
PR | 进程在内核中的优先级,最高20,最低-20 | 20 | 20 |
NI | 进程的nice值,可以由用户设置,以调整进程的优先级 | 0 | 0 |
VIRT | 进程所使用的虚拟内存(默认单位是KB,如果数字后面跟随m表示MB,跟随g表示GB) | 1775m | 75972 |
RES | 进程所使用的物理内存(单位参考VIRT列) | 100m | 51m |
SHR | 进程所使用的共享内存(单位参考VIRT列) | 28m | 7952 |
S |
进程状态:
|
S | R |
%CPU | CPU占用百分比 | 1.7 | 1.0 |
%MEM | 物理内存占用百分比 | 10.0 | 5.1 |
TIME+ | 累计使用的CPU时间 | 5:05.34 | 2:23.42 |
COMMAND | 命令名(执行的程序名) | Photoshop.exe | Xorg |
ps命令类似于top命令,也可以将Linux中所有运行中的进程信息都显示出来。只不过它不会去定时刷新列表,它只显示一次信息就结束了,而且显示的进行信息列也有所不同。
我们可以通过ps ux命令,将当前用户所拥有的进程信息都显示出来:
ps ux
上面通过ps ux命令将当前home用户所拥有的进程的信息都显示了出来,如果当前用户是root,那么ps ux就会将所有root的进程都显示出来。
你也可以通过以下命令格式,来查看单个进程的状态信息:
ps PID
上面的PID表示进程的ID,如下所示:
kill命令可以终止某个运行中的进程。要使用该命令终止进程,你需要先知道进程的ID,命令格式如下:
kill PID
要查看某个进程的ID,可以使用pidof命令:
pidof Process name
pidof后面直接跟随需要查找的进程名即可,如下所示:
上面先通过pidof查找到Photoshop.exe进程的进程ID是1525,接着就可以用kill命令根据该进程ID,将此进程给终止掉了。
之前我们在top命令中,看到每个进程都有一个nice值,用户可以通过调整这个值,来调整进程的优先级。nice值越低,进程的优先级越高,进程就能分配到更多的CPU资源。
nice值的范围是-20到+19,其中-20的优先级最高,+19的优先级最低,0是进程的默认值。
如果你想以某个特定的nice值来启动进程的话,可以使用以下命令格式:
nice -n 'Nice value' process name
nice命令的-n参数后面跟随需要设置的nice值,再跟随一个需要启动的程序名即可:
如果要修改正在运行中的进程的nice值,可以使用'renice'命令,命令格式如下:
renice 'Nice value' -p 'PID'
只需通过-p参数指定需要调整的进程的进程ID即可,如下所示: