一、列出进程:
1、什么是进程?
进程是已启动的可执行程序的运行中实例。现有的父进程复制自己的地址空间来创建一个新的子进程,每个进程有一个唯一进程ID(PID)
2、进程的组成部分:
(1)已分配内存的地址空间(fork)
(2)安全属性,包括所有权凭据和特权
(3)程序代码的一个或多个执行线程
(4)进程状态
3、systemd:是红帽系统上第一个系统进程,init是第一个原始进程
二、Linux进程状态:
名称 | 标志 | 状态名称和描述 |
睡眠 | S | 睡眠等待,当满足条件时该进程返回到运行中 |
D | 睡眠,不会响应信号 | |
K | 允许等待中的任务响应要被中断(退出)的信号 | |
已停止 | T | 进程已被停止(暂停),可通过另一信号返回到运行状态 |
僵停 | z | 子进程退出时向父进程发出信号,除PID之外的资源都释放 |
(1)top命令(动态):S列显示每个进程的状态(S为睡眠状态,R为运行状态)
(2)ps命令(静态):列出当前的进程,STAT列显示每个进程的状态,ps命令的TTY列显示进程的控制终端的设备名称,提供更详细的进程信息。
ps –aux命令:显示包括无控制终端的进程的所有进程。
ps –ef命令:显示所有进程。
三、控制作业:
1、什么是作业?
进程是作业的一部分,作业由多个进程组成,允许单个shell实例运行和管理多个命令。
2、后台运行作业:
任何命令或管道都可以在后台启动,只需在命令行的结尾处加符号&。
例如:显示作业编号和新建子进程的PID
3、jobs命令:显示作业列表,即终端中的进程
4、fg命令和后台作业的ID(%作业编号):将该后台作业转至前台。(暂停使用ctrl+z)
5、bg命令和后台作业的ID(%作业编号):启动后台已运行的已暂停进程。
( [1] 后面的+符号:当前的默认作业)
三、基本进程管理信号:
信号编号 | 短名称 | 定义 | 用途 |
9 | KILL | 中断,无法拦截 | 立即终止程序,无法被忽略、拦截或处理 |
15 | TERM | 终止 | 程序终止,可以忽略、拦截或处理 |
1、发送信号的命令:
(1)暂停:ctrl+z
(2)中止:ctrl+c
(3)核心转储:ctrl+\
2、 kill命令:根据PID编号向进程发送信号
kill –l命令:列出所有可用信号的名称和编号
killall命令:根据命令名称向多个进程发送信号
killall ___命令:以他开头的都终止
grep命令:对当前获取的一堆数据进行过滤、提取、分析
pkill命令:向一个或多个符合选择条件的进程发送信号(条件命令、UID、GID、终端、父级)
pstree命令:查看系统或单个用户的进程树
四、监控进程活动:
1、uptime命令:显示当前时间、计算机启动时间、运行的用户会话数以及当前负载平均值(可根据load average观察负载是增高还是降低)
2、lscpu命令:确定系统有多少cpu
3、top和w命令:报告负载平均值
4、 top命令中的基本击键操作(实施进程监控):
(1)l、t、m:切换到负载、线程、内存标题行
(2)k:中断进程,若有提示输入PID,在输入signal
(3)r:调整nice值
(4)shift+w:写入保存
(5)q:退出