linux初学者-进程篇

 

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"进入帮助查看使用帮助。

        以上就是查看进程和进程管理常用的一些方式。

原文地址:https://www.cnblogs.com/davidshen/p/8142645.html