1、进程与程序
执行一个程序或命令就可以触发一个进程。
这里我们用bash,调用一个新的进程,可以看出,第二个子进程的PPID就是第一个进程的PID,PPID就是父进程的PID,从这里看的出来子进程和父进程的关系。状态也能够看得出来。
2、任务管理
-
直接将命令丢到后台执行的&
可以看到我这里解压缩一个文件,放到后台运行,我可以执行其他命令,我执行其他命令完成后,这个解压缩文件也完成了。是不会影响我前台的操作的。但是这个程序不是很完美,最好是给他重定向一下,这样没有数据提示。
-
将目前的任务丢到后台中的暂停:ctrl + z
当你打开一个文件的时候按暂停操作,即可返回前台执行别的操作 -
查看目前的后台任务状态:jobs
jobs [-lrs]
-l: 除了列出job number 与命令串之外,同时列出PID号码
-r:仅列出正在后台run的任务
-s:仅列出正在后台当中暂停的任务
- 将后台任务拿到前台来处理 :fg
fg %jobnumber
- 让任务在后台下的状态变成运行中:bg
-
管理后台当中的任务: kill
kill可以直接删除后台当中的任务。
kill -signal %jobnumber
kill -l 列出能用的信号
还可以man 7 signal来看signal如何使用
3、进程管理
1、查看进程
- ps:将某个时间点的进程运行截取下来
仅查看自己的bash相关进程: ps -l
F:代表这个进程标志,说明为权限。
S:状态。
UID/PID/PPID:进程的UID,PID,父进程的PID。
C:CPU使用率
PRI/NI:Priority/Nice的缩写,代表此进程被CPU所执行的优先级,数值越小代表该进程越快被执行。
ADDR:该进程位于内存中哪个地方,如果正在运行,则显示-
SZ:代表该进程用掉多少内存
WCHAN:是否正在运行,如果运行则是-
TTY:终端位置
TIME:使用CPU时间
CMD:触发进程的命令。
查看系统所有进程:ps aux
USER:该进程属于所属用户账号
PID:该进程的进程ID
%CPU:该进程使用掉的CPU资源百分比
%MEM:该进程所占的物理内存百分比
VSZ:该进程使用掉的虚拟内存量
RSS:该进程占用的固定的内存量
TTY:该进程在哪个终端上运行的,若与终端无关则显示?
STAT:该进程目前的状态,状态显示与ps -l 的S相同。
START:该进程被被触发启动时间。
TIME:该进程实际使用CPU运行的时间。
COMMAND:该进程实际命令
- top:动态查看进程的变化
top [-d 数字] | top [-bnp]
-d:后面可以接秒数,进程界面更新的秒数,默认是5s
-b:以批量的方式执行top
-n:与-b搭配,意义是,需要执行几次top的输出结果
-p:指定某些个PID来执行查看检测
还有很多参数不一一列举,大家可以man top来查看进程变化。
top -d 2
上面的界面是整个系统的资源使用状况,下面的界面是每个进程的使用的资源情况。
-
pstree:可以列出进程树
可以很容易的看出进程之间的相关性。
2、进程的管理
进程之间是可以相互控制的。
kill -signal PID
killall -signal 命令名称
kill后面加上PID,一般都要配合ps,pstree等命令。但是killall可以利用执行命令的名称来给予信号。
可以直接删除以httpd启动的进程 -i可以交互性的提示用户是否删除3、进程的执行顺序
正如之前所说的执行顺序即是所谓的优先级取决于priority与nice值。
priority 是无法被改变的,它是由系统内核动态调整的。
但是我们可以通过修改nice的值来修改优先级。
PRI(new)=PRI(old)+nice
nice的调整范围是-20-19,root可以随便调整自己或者他人进程的nice值,一半用户只可以将nice值越调越高。
-
nice 新执行的命令立即给予新的nice值
nice [-n 数字] command
-n : 后面接一个数值,数值的范围为-20-19
这里可以很清楚看见优先级的变化
注意:不一定每次都会按照你设置的调整,因为内核会动态的变化Pri。
- renice 已存在进程的nice重新调整
renice [number] PID
网友评论