5.1初识进程
进程是已启动的可执行程序的运行实例。进程有以下组成部分。
. 已分配内存的地址空间。
· 安全属性,包括所有权凭据和特权。
● 程序代码的一个或多个执行线程。
· 进程状态。
每个进程都有唯一的进程标识 PID,一个 PID 只能标识一个进程,PPID为父进程ID,需要给该进程分配系统资源。
进程状态是指程序执行过程中的变化。进程状态随着程序的执行和外界条件的变化而转换,一般分为3类:就绪态、运行态、阻塞态,如图5.1所示。
就绪态:进程已经具备运行条件,但是CPU还没有分配过来。
运行态:进程占用CPU,并在CPU上运行。
阻塞态:进程因等待某事件发生而暂时不能运行
5.2 查看进程
上节讲解了进程的基本概念,介绍了进程的状态、生命周期,还有进程需要占用的系统资源。接下来讲解如何查看进程ID、进程状态、内存与CPU的分配情况等。
5.2.1静态查看进程
ps 命令可以查看静态进程,仅仅是捕捉某一个瞬间某一个进程的状态,类似于给进程制作快照。使用"ps aux"命令查看当前目录的进程,具体如下所示。
用户在查看CUP占用率时,一般会希望进程按照CPU占用百分比的降序排列,此时可以使用"ps
aux --sort-%cpu"命令,具体如下所示。
"ps -ef"命令可以查看 UID、PID、PPID等信息,具体如下所示。
查看指定进程PID方法
cat命令
pidof命令
pgrep命令
5.2.2 动态查看进程
top命令可以实时动态地显示进程,类似于Windows 系统中的任务管理器。使用top 命令动态查看进程时,进程信息分为上下两部分,上面为整体信息,下面为每一个进程的信息。系统默认更新时间为3秒,也可以按回车键立即更新,具体如下所示。
按M键以内存占用率排序
按P键以CPU占用率排序
按N键以PID数值大小排序
按R键对排序进行反转
按1键显示所有CPU负载
在top命令后添加参数"-d"可以设置刷新时间,以秒为单位。如设置为1秒刷新一次,具体如
下所示。
[root@qfedu ~]# top -d 1
添加"-p"参数可以指定查看一个或多个进程的动态信息,如查看PID为10636与1的进程信息,具体如下所示。
[root@qfedu ~]# top -d 1 -p 10636,1
添加"-u"参数可以查看指定用户的进程,添加"-n"参数可以设置刷新次数,完成后自动退出,具体如下所示。
[root@qfedu ~]# top -d 1 -u apache -n 2
5.3信号控制进程
5.3.1KILL命令
Linux中的kill命令用来终止指定进程的运行。首先使用ps/pidof/top等工具获取进程PID,然后使用kill命令来杀死该进程。kill 命令通过向进程发送指定的信号来结束相应的进程,在默认情况下。采用编号为15的TERM信号。使用"kill-1"命令查看全部信号,具体如下所示。
5.3.2 killall命令
killall命令可以用于终止某个指定名称的服务所对应的全部进程
5.4进程的优先级
5.4.1使用top命令查看nice级别
使用top命令可以查看nice级别,其中,NI列表示实际nice级别,PR列将nice级别映射到更大优先级队列,-20映射到0,+19映射到39,具体如下所示。
5.4.2 使用ps 命令查看nice 级别
使用ps命令查看nice级别,具体如下所示。
5.5作业控制
作业控制是一个命令行功能,允许一个Shell 实例运行和管理多个命令。如果没有作业控制,父进程fork()一个子进程后将休眠,直到子进程退出。使用作业控制可以选择性暂停、恢复以及异步运行命令,让Shell 可以在子进程运行期间返回接受其他命令。
foreground:前台进程是在终端中运行的命令,该终端为进程的控制终端。前台进程接收键盘产生的输入和信号,并允许从终端读取或写入到终端。
例如,创建一个 sleep进程,在前台运行时可以按ctrl+c组合键停止,具体如下所示。
[root@qfedu-]# sleep 800
background:后台进程没有控制终端,不需要终端的交互。
例如,在后台创建sleep进程,使用ctrlte 组合键并不能结束该进程,其中"&"为后台符,具体如下
[root@qfedu-)f sleep 900&
[1) 3812
[root@gfedu~]# ^℃
[root@qfedu ~]# ps
PID TTY
2606 pts/0
3812 pts/0
标签:查看,管理,top,命令,所示,Linux,进程,CPU From: https://www.cnblogs.com/xlf030215/p/17848451.html