linux初学者-进程篇
不管是windows还是linux,都有进程,那么什么是进程呢?进程就是cpu未完成的工作。下面会介绍一些关于系统中进程的查看以及管理的方法。
1、命令
1.1、命令使用
查看进程,使用的命令是"ps",加入参数"-a"表示关于当前环境的所有进程。
参数"x|A"均可表示所有进程,但是"A"列出的是正在进行的进程,而"x"列出的是包括已经结束的进程在内的所有进程。
参数"f"表示进程的从属关系。
参数"e"显示进程调用环境工具的详细信息。
参数"l"长列表显示进程的详细信息。
参数"u"可以显示进程的用户信息。
参数"-a"显示shell前台运行命令的进程,但不包含shell本身。
1.2、选择性查看
查看进程时,也可以只查看自己想要的内容,例如只想要查看进程的cpu使用情况,内存的使用情况,用户名,PID和状态,那么需要输入命令"ps ax -o %cpu,%mem,user,pid,stat"就可以出现下图。除此之外,"group"还可以显示组信息,"nice"显示进程优先级。
1.3、进程的状态
进程一般会出现五种状态。R(Running):该程序正在运行中。S(Sleep):该程序目前正在睡眠状态(idle),但可以被唤醒(signal)。D :不可被唤醒的睡眠状态,通常进程可能在等待I/O的情况。T:停止状态(stop),可能是在工作控制(背景暂停)或者除错(traced)的状态。Z(Zombie):僵尸状态,程序已经终止但却无法被移除至内存外。
可以通过"stat"选择性查看进程状态信息,如下图所示,其中"S"表示进程状态,"l"表示内存中有锁定空间,"N"表示优先级低,"<"表示优先级高,"+"表示前台运行,"s"表示顶级进程。
1.4、进程的排序
在查看进程时,有时候需要按照进程的信息进行排序查看,排序的命令为"ps ax -o %cpu,comm --sort <+|-%cpu > <+|-%mem> ","+"表示正序排列,"-"表示倒序排列。如下图为对CPU的使用量进行倒序排列。
2、进程的优先级
进程的优先级表示cpu处理程序的顺序,优先级范围为-20~19,数字越小表示优先级越高。查看优先级可以用"ps ax -o pid,nice,comm"实现,如下图。
如果需要更改程序的优先级,则需要输入命令"renice -n 优先级数字 进程pid",例如需要将"bash"程序的优先级改为15,就需要输入"renice -n 15 3475"。
如果在程序打开前指定优先级则需要的命令是"nice -n 优先级 进程",例如设置vim程序在打开时的优先级为19,则需要输入"nice -n 19 vim &"。
3、进程的前后台调用
在shell中打开一个"gedit",如下图,可以发现,"gedit"会弹出窗口,此时shell是无法继续使用的。
如果需要继续使用shell,就需要按"ctrl + z",把占用终端的进程打入后台。此时的进程是无法继续使用的。
输入"jobs"就可以查看被打入环境后台的进程。输入"fg jobsnum"就可以把后台进程调回前台,例如下图输入"fg 2"就可以重新使用"gedit"。
输入"bg"可以把后台暂停的进程后台运行,打入后台后还可以继续使用,同时shell也可以使用。
也可以在程序开启前在命令后加"&",让命令直接在后台运行。
4、进程的信号
4.1、信号种类
信号也就是直接提供给计算机的命令。计算机中有着很多很多的信号,一般应用最多也最普遍的信号是:
1 :进程重新加载配置但是不会关闭进程
2 :删除进程在内存中的数据
3 :删除鼠标在内存中的数据
9 :强行结束单个进程(不能被阻塞)
15:正常关闭进程(可能会被阻塞)
18:运行暂停的进程
19:暂停某个进程(不能被阻塞)
20:把进程打入后台(可以被阻塞)
可以输入"man 9 signal"可以查看信号详细信息。
4.2、信号的应用
"kill -信号 进程pid"可以对进程进行操作,例如输入"kill -15 4107"就可以结束"gedit"进程。
"killall -信号 进程名字"可以对相同进程进行批量操作,例如输入"killall -9 vim"就可以结束全部的"vim"进程。
此外,"pkill -u student -信号"还可以对指定用户的进程进行操作。
5、用户登陆审计
在使用linux系统时,有时候需要连接其他计算机或者终端,那么就需要查看是否有人正在连接或者连接过自己的计算机,也是对计算机的一种保护。
"w"可以查看使用系统的当前用户有那些。
"w -f "可以查看使用地点,例如有一台主机连接自己的主机后,下图就会显示出来。但是"w"命令只能显示正在连接自己主机的信息。
"last"命令可以查看用户登陆成功过的历史,如下图所示,虽然其他主机连接已经断开,但还是会显示出来。
"lastb"可以查看用户登陆但是未成功的历史,例如连接主机时密码没输对。
6、top
"top"命令可以监控系统负载工具,可以按"h"进入帮助查看使用帮助。
以上就是查看进程和进程管理常用的一些方式。