Linux06

发布时间 2023-11-27 16:45:28作者: jx03

         在Linux课程的第五章,我学了进程管理。进程的含义为正在运行的程序,包括这个运行的程序所占用的系统资源。进程是具有一定独立功能的程序关于某个数据集合的一次运行活动,是系统进行资源分配和调度的一个独立单位。同一个程序,同一时刻被两次运行了,它们就是两个独立的进程。进程是已启动的可执行程序的运行实例。进程有以下组成部分:已分配内存的地址空间;安全属性,包括所有权凭据和特权;程序代码的一个或多个执行线程;进程状态。每个进程都有唯一的进程标识PID,一个PID只能标识一个进程,PPID为父进程ID,需要给该进程分配系统资源。进程状态是指程序执行过程中的变化。进程状态随着程序的执行和外界条件的变化而转换,一般分为3类:就绪态、运行态、阻塞态。不同的进程对系统资源的需求是不一样的。

就绪态:进程已经具备运行条件,但是CPU还没有分配过来。

运行态:进程占用CPU,并在CPU上运行。

阻塞态:进程因等待某件事发生而暂时不能运行。

 

静态查看进程:ps命令可以查看静态进程,使用ps aux命令查看当前目录的进程。

                        查看CPU占有率时,使用ps aux --sort-%cpu命令查看进程会按照CPU占用百分比的降序排列。

                        ps -ef命令可以查看UID、PID、PPID等信息。

                        为了快速查找,需要显示的内容简洁并有针对性,使用ps axo命令自定义显示的字段

                        常用的查看指定进程PID的方法:cat命令,如【cat /run/sshd.pid】;

                                                                          pidof命令,如【pidof sshd】;

                                                                          pgrep命令,如【pgrep sshd】。

 

动态查看进程:top命令可以实时动态地显示进程。M键以内存占用率排序;P键以CPU占用率排序;N键以PID数值大小排序;R键对排序进行反转;F键显示自定义显示字段;上下键移动;空格键选中;q键退出自定义显示字段;W键保存自定义显示字段;1键显示所有CPU的负载,当前为4个CPU。

                       top命令后添加-d参数可设置刷新时间(以秒为单位),如一秒刷新一次【top -d 1】。添加-p参数可指定查看一个或多个进程的动态信息,如查看PID为10636与1的进程信息【top -d 1 -p 10636,1】。添加-u参数可查看指定用户的进程,-n参数可设置刷新次数【top -d 1 -u apache -n 2】。

 

信号控制进程:在进程运行过程中,若由于某些原因需要终止该进程,用户可以给予该进程一个信号,进程接收到信号之后,就会依照信号要求做出相应的反应。

                        kill命令用来终止指定进程的运行,使用kill -l命令查看全部信号。

                        killall命令可以用于终止某个指定名称的服务所对应的全部进程,如终止所有vsftpd服务进程【killall vsftpd】。

 

进程优先级:进程优先级是一个数值,动态的优先级和静态的优先级决定了进程被CPU处理的顺序。一个拥有更高进程优先级的进程被CPU处理的概率更高。

                    top命令可以查看nice级别。

                    使用ps命令查看nice级别【ps axo pid,command,nice,cls --sort=-nice】。

 

作业控制:作业控制时一个命令行功能,允许一个Shell实例运行和管理多个命令。如果没有作业控制,父进程fork()一个子进程后将休眠,直到子进程退出。使用作业控制可以选择性暂停、恢复以及异步运行命令,让Shell可以在子进程运行期间返回接受其他命令。

foreground:前台进程是在终端中运行的命令,该终端为进程的控制终端。前台进程接收键盘产生的输入和信号,并允许从终端读取或写入到终端。

background:后台进程没有控制终端,不需要终端的交互。