什么是进程(process)?
程序执行起来就被成为进程。linux下触发任何一个事件,系统都会将它定义成一个进程,并且给予这个进程一个 ID,称为 PID (Process ID),同时依据启发这个进程的用户与相关属性关系,给予这个 PID 一组有效的权限设置。
进程(process)与程序 ( program)
执行一个程序或指令,就可以触发一个事件而取得一个 PID。进程就是程序的运行,一个程序可以包括很多进程。
不同的用户运行程序,程序所拥有的权限也是不同的,概念如下图:
系统通过这个 PID 来判断该 process 是否具有权限进行工作的。
程序与进程总结:
- 程序 program:通常为 binary program,实体文件的形态存在
- 进程 process:程序被触发后,执行者的权限与属性、程序的程序代码与所需数据等都会被加载到内存中,操作系统并给予这个内存单元一个标识符(PID),可以说,进程就是一个正在运行的程序
进程的分类
- 前台进程:它们在屏幕上运行,需要用户输入。 例如Office程序
- 后台进程:它们在后台运行,通常不需要用户输入。 例如防病毒。
运行前台进程
要启动前台进程,可以从仪表板运行它,也可以从终端运行它。使用终端时,必须等待,直到前台进程运行。
运行后台进程
如果从终端启动前台程序/进程,则只有在程序启动并运行后,才能在终端上工作。
但是,如果程序需要处理大量数据密集型任务,系统需要大量的处理能力,甚至可能需要数小时才能完成。 为避免这种情况,可以运行该程序并将其发送到后台,以便终端仍然可用。
[bg]
可以把运行的程序转入后台
[fg jobname]
可以把正在后台运行的进程转入前台。
停止一个命令用 ‘ctrl +z’ 命令
重要的process管理命令
top
top是系统管理员经常使用的命令。该命令显示占用资源最多的进程名称。退出可以用 ‘ctrl +c’ 命令或’q’ 键盘推出。
终端将显示很多重要信息。
The terminology follows:
Field | Description | Example 1 | Example 2 |
---|---|---|---|
PID | 每一个进程的PID | 1907 | 4725 |
User | 每一个进程的所有者 | zhihuixinpian | Root |
PR | 优先权 | 20 | 20 |
NI | 一个任务的Nice值 | 0 | 0 |
VIRT | 占用虚拟空间 (kb) | 1775 | 75972 |
RES | 占用的资源 (kb) | 100 | 51 |
SHR | 共享内存 (kb) | 28 | 7952 |
S | Status (状态)
There are five types:(有五个类型) ‘D’ = uninterruptible sleep (不可打断的睡眠) ‘R’ = running (正在运行) ‘S’ = sleeping (睡觉) ‘T’ = traced or stopped (停止的) ‘Z’ = zombie (僵尸) |
S | R |
%CPU | % of CPU time (占有CPU 百分比) | 1.7 | 1.0 |
%MEM | Physical memory used (占用内存) | 10 | 5.1 |
TIME+ | Total CPU time (CPU 时间 ) | 5:05.34 | 2:23.42 |
Command | Command name (命令 名) | gnome | Web Co |
PS
ps也是系统管理员常用的命令。PS代表命令状态“process status”。该命令和“top”命令类似,但是显示方式有所不同。
检查一个用户的所有进程,可以使用命令
ps ux
如果检查一个一个单一进程的状态,可以使用命令:
ps PID
Kill
该命令终结一个进程,具体语法:
kill PID
彻底杀死一个进程:
kill -9 PID
这个命令一般和 top 一起使用,发现哪一个进程消耗资源太多,就kill它。一般网站号称提供无限空间和带宽,但是如果用户的程序占用太多资源的时候,管理员很容易用TOP和KILL命令发现并终止它。
但如果想终止一个具体进程,可以使用下列命令发现该进程PID
pidof Process name
NICE
Linux一次可以运行许多进程,这可能会降低某些高优先级进程的速度,并导致性能下降。为避免这种情况,可以根据需求确定进程的优先级。
优先级在Linux中称为Niceness,其值介于-20到19之间。Niceness指数越低,该任务的优先级就越高。
所有进程的默认值为0。
要使用默认值以外的niceness值启动进程,请使用以下语法:
nice -n 'Nice value' processname
如果该进程正在运行,可以使用重新NICE命令:
renice 'nice value' -p 'PID'
DF
该命令报告所有文件系统上的可用磁盘空间(硬盘)。
如果您希望上述信息以可读格式显示,请使用以下命令
df -h
Free
该命令显示已经使用和尚未使用的内存空间。
[free -g] 输出显示 GB
[free -m] 输出显示MB
摘要:
- 任何正在运行的程序或命令都称为进程
- 进程可以在前台或后台运行
- 进程的优先级索引在Linux中称为Nice。 其默认值为0,并且可以在20到-19之间变化,Niceness 指数越低,该任务的优先级越高
命令 | 描述 |
---|---|
bg | 把进程送入后台运行 |
fg | 把后台停止运行的进程导入前台运行, 停止一个命令用 ‘ctrl +z’ 命令 |
top | 所有正在运行的进程 |
ps | 一个用户的所有进程 |
ps PID | 特定进程的状态 |
pidof | 显示一个进程的PID |
kill PID | 终止一个进程 |
nice | 确定一个程序的niceness值 |
renice | 重新给一个正在运行的进程新的优先值 |
df | 列出所有文件系统上的可用磁盘空间(硬盘) |
free | 该命令显示已经使用和尚未使用的内存空间 |