概述
什么是进程?
进程就是系统未完成并且正在进行的工作,通俗的来说,进程就是系统正在运行的程序。
2.查看系统中的进程
图形查看:
gnome-system-monitor
用这个命令可以直接在图形界面上查看进程。
任何一个进程都有它的PID这个就和我们的身份证号码一样,是独一无二的。
命令查看:
使用ps命令可以查看系统进程。
ps -A ##查看所有进程
ps -u ##显示进程用户信息
ps a ##查看所有前台进程
ps x ##查看所有后台进程
ps f ##显示进程的父子关系
ps e ##显示进程的详细信息(系统资源的调用)
ps常用组合:
ps aux ##显示系统中所有进程并且显示进程用户
ps ef ##显示进程详细信息并显示进程父子关系
ps ax ##显示当前系统中所有进程
pstree ##显示当前系统的进程树
进程树可以看到进程之间详细的父子关系。
显示进程的指定信息
ps -o [参数] ##显示进程指定信息
参数:
comm ##进程名称
user ##进程所有者
group ##进程所属组
%cpu ##进程cpu使用率
%mem ##进程内存使用情况
pid ##进程pid
nice ##进程优先级
查看进程名称,所有者:
使用ps -o加上相应的参数之间可以查看进程指定信息,要指定多个信息可以用逗号隔开。
进程排序
ps [参数] --sort = +%cpu | -%cpu
ps [参数] --sort = +%mem | -%mem
用上面的命令可以将进程排序,其中ps后的参数在上面已经讲到,这里不再重复。
可以看到,–sort=后可跟%cpu和%mem在前面的[+][-]表示递加递减的意思,如“–sort= -%cpu”表示进程按照cpu的使用率递减排序,“–sort= +%mem”则表示按照内存的使用情况递加排序。
显示stat中显示的信息
在查看进程信息的时候,我们会看到有个STSA,STAT表示进程状态,下面有很多参数,如S,<等,现在我们看看他们的含义。
S ##进程状态
l ##内存中有锁定空间
N ##优先级低
< ##优先级高
+ ##前台运行
s ##顶级进程
使用ps ax查看系统进程:
我们看到[S]表示进程的状态;[l]表示内存有锁定空间,当内存的空间被锁定时,其他程序不可以使用之一片内存;[N]表示进程的优先级低;而[<]则刚好相反,表示进程的优先级高,关于优先级在下面会讲到;[+]表示在前台运行的进程,如用vim打开一个文件,此时vim在前台运行;s代表顶级进程。
进程的优先级
前面我们已经提到了进程的优先级,在进程中,优先级高的优先执行,同时系统资源优先分配,在同一个调度周期中,优先级高的进程占用的时间长些,而优先级低的进程占用的短些。
优先级的范围:
-20 ~ 19
优先级的查看:
ps ax -o pid,nice,comm,user
使用nice参数可以查看进程优先级。
指定某个优先级开启进程
nice -n 优先级数字 进程名称
nice -n -4 vim & ##开启vim并指定进程优先级为-4
成功指定了进程的优先级为-4。
环境中进程的前后台调用
jobs ##查看被打入环境后台的进程
ctrl+z ##把占用终端的进程打入后台
fg jobsnum ##把后台进程调回前台 注:如果直接用fg那么默认调用有[+]的进程。
bg jobsnum ##把后台暂停的进程运行
命令 & 让命令直接在后台运行
使用jobs查看被打入后台的进程
使用ctrl + z可以把占用终端的进程打入后台,如使用vim时占用了终端,使用ctrl + z可以把vim这个进程打入后台。
现在后台有三个进程,可以使用fg加左边的数字把后台进程调回前台。
将vim调回前台
同时可以使用bg把后台暂停的进程运行。
在命令后加[&]可以让命令直接在后台运行。
进程信号
常用信号等级:
1 ##进程重新加载配置(不关闭进程重新加载配置文件)
2 ##删除进程在内存中的数据
3 ##删除鼠标在内存中的数据
9 ##强行结束单个进程(不能被阻塞)
15 ##正常关闭进程 (可能会被阻塞)
18 ##运行暂停的进程
19 ##暂停某个进程(不能被阻塞)
20 ##把进程打入后台(可以被阻塞)
进程有不同的信号等级,在这里我们来列举一些常用的,这些信号等级常常用在kill命令或killall命令中,在命令后加上相应的信号等级,就可以对进程进行相应操作。格式如下:
kill -信号 进程pid
killall -信号 进程名字
pkill -u student -信号
kill -9 3024
使用kill -9 可以直接杀死进程,而kill -2只是删除进程在内存中的数据,也就是把进程之前占用的内存晴清。而使用kill -15是正常关闭某个程序,和kill -9的强制关闭不同,使用kill -15有可能被阻塞,也就是这次操作有可能不成功。
kill -18 3444
使用kill -18可以使暂停的程序运行
可以看到刚才运行的gedit被暂停了。
killall -信号 进程名字
使用killall可以直接对进程名字进行操作,不用指定进程的pid,可以直接对一类进程进行操作。上面我打开了多个vim进程,使用killall -9后将他们全部杀死了。
pkill -u 用户名 -信号
使用这个命令可以对某个用户产生的进程进行某个信号的处理。
进程的动态监控
top
使用top命令可以进行进程的动态监控。进入动态监控的界面后,还可以使用参数进行其他操作
s ##调整刷新频率
c ##查看帮助
m ##内存使用量排序
h ##查看帮助
u ##查看指定用户发起进程
k ##对指定进程发起信号
q ##退出
按1显示cpu每个核的负载。
按s调整刷新频率,之后选择刷新时间,我这里按1,代表每秒刷新一次。
按h查看帮助。
按m显示内存使用量排序。
按u后输入用户名可以查看指定用户发起的进程,我这里查看的是root产生的进程,除此之外,按k可以对指定的进程发起信号,按q会退出这个界面。
最后
以上就是鲜艳黑夜为你收集整理的进程与进程管理的全部内容,希望文章能够帮你解决进程与进程管理所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复