Linux 学习笔记(10)

十、 进程管理
进程就是运行中的程序,一个运行着的程序,可能有多个进程。 比如 LinuxSir.Org 所用的 WWW
服务器是 apache 服务器,当管理员启动服务后,可能会有好多人来访问,也就是说许多用户来同时请
httpd 服务, apache 服务器将会创建有多个 httpd 进程来对其进行服务。
1 进程分类
进程一般分为交互进程、批处理进程和守护进程三类。
值得一提的是守护进程总是活跃的,一般是后台运行,守护进程一般是由系统在开机时通过脚本自
动激活启动或超级管理用户 root 来启动。比如在 Fedora Redhat 中,我们可以定义 httpd 服务器的启
动脚本的运行级别,此文件位于 /etc/init.d 目录下,文件名是 httpd /etc/init.d/httpd 就是 httpd 服务器
的守护程序,当把它的运行级别设置为 3 5 时,当系统启动时,它会跟着启动。
[root@localhost ~]# chkconfig --level 35 httpd on 由于守护进程是一直运行着的,所以它所处的状态是等待请求处理任务。比如,我们是不是访问
LinuxSir.Org LinuxSir.Org httpd 服务器都在运行,等待着用户来访问,也就是等待着任务处理。
2 、进程的属性
进程 ID PID) :是唯一的数值,用来区分进程;
父进程和父进程的 ID PPID)
启动进程的用户 ID UID )和所归属的组( GID );
进程状态:状态分为运行 R 、休眠 S 、僵尸 Z
进程执行的优先级;
进程所连接的终端名;
进程资源占用:比如占用资源大小(内存、 CPU 占用量);
3 、父进程和子进程
他们的关系是管理和被管理的关系,当父进程终止时,子进程也随之而终止。但子进程终止,父进
程并不一定终止。比如 httpd 服务器运行时,我们可以杀掉其子进程,父进程并不会因为子进程的终止
而终止。
在进程管理中,当我们发现占用资源过多,或无法控制的进程时,应该杀死它,以保护系统的稳定
安全运行
4 、进程管理命令
4.1 ps
ps 为我们提供了进程的一次性的查看,它所提供的查看结果并不动态连续的;如果想对进程时间监控,
应该用 top 工具。
4.1.1 ps 的参数说明:
ps 提供了很多的选项参数,常用的有以下几个;
l 长格式输出;
u 按用户名和启动时间的顺序来显示进程;
j 用任务格式来显示进程;
f 用树形格式来显示进程;
a 显示所有用户的所有进程(包括其它用户);
x 显示无控制终端的进程;
r 显示运行中的进程;
ww 避免详细参数被截断;
我们常用的选项是组合是 aux lax ,还有参数 f 的应用;
ps aux lax 输出的解释;
USER 表示启动进程用户。 PID 表示进程标志号。 %CPU 表示运行该进程占用 CPU 的时间与该进
程总的运行时间的比例。 %MEM 表示该进程占用内存和总内存的比例。 VSZ 表示占用的虚拟内存大
小,以 KB 为单位。 RSS 为进程占用的物理内存值,以 KB 为单位。 TTY 表示该进程建立时所对应的
终端, "?" 表示该进程不占用终端。 STAT 表示进程的运行状态,包括以下几种代码: D ,不可中断的
睡眠; R ,就绪(在可运行队列中); S ,睡眠; T ,被跟踪或停止; Z ,终止(僵死)的进程, Z 存在,但暂时无法消除; W ,没有足够的内存分页可分配; < 高优先序的进程; N ,低优先序的进程;
L ,有内存分页分配并锁在内存体内(实时系统或 I/O )。 START 为进程开始时间。 TIME 为执行的时
间。 COMMAND 是对应的命令名。
4.1.2 ps 应用举例
实例一: ps aux 最常用
[root@localhost ~]# ps -aux |more
可以用 | 管道和 more 连接起来分页查看;
[root@localhost ~]# ps aux > ps001.txt
[root@localhost ~]# more ps001.txt
这里是把所有进程显示出来,并输出到 ps001.txt 文件,然后再通过 more 来分页查看;
实例二:和 grep 结合,提取指定程序的进程;
[root@localhost ~]# ps aux |grep httpd
root 4187 0.0 1.3 24236 10272 ? Ss 11:55 0:00 /usr/sbin/httpd
apache 4189 0.0 0.6 24368 4940 ? S 11:55 0:00 /usr/sbin/httpd
apache 4190 0.0 0.6 24368 4932 ? S 11:55 0:00 /usr/sbin/httpd
apache 4191 0.0 0.6 24368 4932 ? S 11:55 0:00 /usr/sbin/httpd
apache 4192 0.0 0.6 24368 4932 ? S 11:55 0:00 /usr/sbin/httpd
apache 4193 0.0 0.6 24368 4932 ? S 11:55 0:00 /usr/sbin/httpd
apache 4194 0.0 0.6 24368 4932 ? S 11:55 0:00 /usr/sbin/httpd
apache 4195 0.0 0.6 24368 4932 ? S 11:55 0:00 /usr/sbin/httpd
apache 4196 0.0 0.6 24368 4932 ? S 11:55 0:00 /usr/sbin/httpd
root 4480 0.0 0.0 5160 708 pts/3 R+ 12:20 0:00 grep httpd
实例二:父进和子进程的关系友好判断的例子
[root@localhost ~]# ps auxf |grep httpd
root 4484 0.0 0.0 5160 704 pts/3 S+ 12:21 0:00 \_ grep
httpd
root 4187 0.0 1.3 24236 10272 ? Ss 11:55 0:00 /usr/sbin/httpd
apache 4189 0.0 0.6 24368 4940 ? S 11:55 0:00 \_ /usr/sbin/httpd
apache 4190 0.0 0.6 24368 4932 ? S 11:55 0:00 \_ /usr/sbin/httpd
apache 4191 0.0 0.6 24368 4932 ? S 11:55 0:00 \_ /usr/sbin/httpd
apache 4192 0.0 0.6 24368 4932 ? S 11:55 0:00 \_ /usr/sbin/httpd
apache 4193 0.0 0.6 24368 4932 ? S 11:55 0:00 \_ /usr/sbin/httpd
apache 4194 0.0 0.6 24368 4932 ? S 11:55 0:00 \_ /usr/sbin/httpd
apache 4195 0.0 0.6 24368 4932 ? S 11:55 0:00 \_ /usr/sbin/httpd
apache 4196 0.0 0.6 24368 4932 ? S 11:55 0:00 \_ /usr/sbin/httpd
这里用到了 f 参数;父与子关系一目了然;
例三:找出消耗内存最多的前 10 名进程
# ps -auxf | sort -nr -k 4 | head -10
例四:找出使用 CPU 最多的前 10 名进程
# ps -auxf | sort -nr -k 3 | head -10
4.2 pstree
功能: pstree 命令列出当前的进程,以及它们的树状结构。
格式: pstree [ 选项 ] [pid|user]
主要选项如下: -a :显示执行程序的命令与完整参数。
-c :取消同名程序,合并显示。
-h :对输出结果进行处理,高亮显示正在执行的程序。
-l :长格式显示。
-n :以 PID 大小排序。
-p :显示 PID
-u :显示 UID 信息。
-G :使用 VT100 终端编码显示。
-U :使用 UTF-8 Unicode )编码显示。
说明:使用 ps 命令得到的数据精确,但数据庞大,这一点对掌握系统整体概况来说是不容易的。 pstree
正好可以弥补这个缺憾。它能将当前的执行程序以树状结构显示。 pstree 支持指定特定程序( PID
或使用者( USER )作为显示的起始。
应用实例如下。
进程启动的时候可能会产生自己的一个子进程。运行 pstree 命令就可以很容易地看到这些信息。以超
级用户权限运行 pstree
命令对程序名称相同的会自动合并,所有 "|-httpd---8*[httpd]" 即表示系统中有 8 httpd 进程产生的
子进程。
4.3 top
top 命令用来显示系统当前的进程状况。
格式: top [ 选项 ]
主要选项如下。
d :指定更新的间隔,以秒计算。
q :没有任何延迟的更新。如果使用者有超级用户,则 top 命令将会以最高的优先序执行。
c :显示进程完整的路径与名称。
S :累积模式,会将已完成或消失的子进程的 CPU 时间累积起来。 s :安全模式。
i :不显示任何闲置( Idle )或无用( Zombie )的进程。
n :显示更新的次数,完成后将会退出 top
说明: top 命令和 ps 命令的基本作用是相同的,都显示系统当前的进程状况。但是 top 是一个动态显
示过程,即可以通过用户按键来不断刷新当前状态。这里结合下图来说明它给出的信息。
第一行表示的项目依次为当前时间、系统启动时间、当前系统登录用户数目、平均负载。
第二行显示的是 Tasks: 114 total 进程总数、 2 running 正在运行的进程数、 110 sleeping 睡眠的进程数、
0 stopped 停止的进程数、 2 zombie 僵尸进程数
第三行显示的是目前 CPU 的使用情况, Cpu(s): 0.3% us 用户空间占用 CPU 百分比、 1.0% sy 内核空间
占用 CPU 百分比、 0.0% ni 用户进程空间内改变过优先级的进程占用 CPU 百分比、 98.7% id
CPU 百分比、 0.0% wa 等待输入输出的 CPU 时间百分比、 0.0% hi 0.0% si
第四行显示物理内存的使用情况, Mem: 191272k total 物理内存总量、 173656k used 使用的物理内存
总量、 17616k free 空闲内存总量、 22052k buffers 用作内核缓存的内存量
第五行显示交换分区使用情况, Swap: 192772k total 交换区总量、 0k used 使用的交换区总量、 192772k
free 空闲交换区总量、 123988k cached 缓冲的交换区总量、内存中的内容被换出到交换区,
而后又被换入到内存,但使用过的交换区尚未被覆盖,该数值即为这些内容已存在于内存中的
交换区的大小。相应的内存再次被换出时可不必再对交换区写入。
第六行显示的项目最多,下面列出了详细解释。
PID Process ID ):进程标志号,是非零正整数。 USER :进程所有者的用户名。 PR :进程的优先级别。
NI :进程的优先级别数值。 VIRT :进程占用的虚拟内存值。 RES :进程占用的物理内存值。 SHR :进程
使用的共享内存值。 STAT :进程的状态,其中 S 表示休眠, R 表示正在运行, Z 表示僵死状态, N
示该进程优先值是负数。 %CPU :该进程占用的 CPU 使用率。 %MEM :该进程占用的物理内存和总内 存的百分比。 TIME :该进程启动后占用的总的 CPU 时间。 COMMAND :进程启动的启动命令名称,如
果这一行显示不下,进程会有一个完整的命令行。
top 命令使用过程中,还可以使用一些交互的命令来完成其他参数的功能。这些命令是通过快捷键启
动的。
< 空格 > :立刻刷新。
A 分类显示系统不同资源的使用大户。有助于快速识别系统中资源消耗多的任务。
f 添加删除所要显示栏位 .
o 调整所要显示栏位的顺序 .
r 调整一个正在运行的进程 Nice .
k 结束一个正在运行的进程 .
z 彩色 / 黑白显示开关
P :根据 CPU 使用大小进行排序。
T :根据时间、累计时间排序。
q :退出 top 命令。
m :切换显示内存信息。
t :切换显示进程和 CPU 状态信息。
c :切换显示命令名称和完整命令行。
M :根据使用内存大小进行排序。
W :将当前设置写入~ /.toprc 文件中。这是写 top 配置文件的推荐方法。
可以看到, top 命令是一个功能十分强大的监控系统的工具,对于系统管理员而言尤其重要。但是,
它的缺点是会消耗很多系统资源。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/719405.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Django官网项目 二

官网地址&#xff1a;Writing your first Django app, part 2 | Django documentation | Django 创建模组&#xff1a; 注册model &#xff08;bug&#xff1a;没有加后面的逗号&#xff09; 在manage.py 的目录下&#xff1a; python manage.py makemigrations polls pyth…

redis09 集群(cluster)

思维草图 为什么要使用集群 单台redis内存容量的限制单台redis并发写量太大有性能瓶颈 redis集群认识 redis集群是对redis的水平扩容&#xff0c;即启动N个redis节点&#xff0c;将整个数据分布存储在这个N个节点中&#xff0c;每个节点存储总数据的1/N。 如下图&#xff1…

C++ 根据公式计算椭圆任意点到中心的距离

#include <iostream> using namespace std;double fact(int x) //定义阶乘函数。注意是double类型 {double y x; //注意是double类型for (int i x-1; i > 0; i--)y * i;return y; };double My_sin(int x) //定义sin函数。注意是double类型 {double y 0; //注意是do…

【视频图像取证篇】Amped FIVE专业法医图像和视频增强软件之模糊图像去隔行功能

【视频图像取证篇】Amped FIVE专业法医图像和视频增强软件之模糊图像去隔行功能 法医图像和视频增强软件&#xff0c;专业又强大&#xff01;&#xff01;&#xff01;超过 140 种过滤器和工具&#xff0c;用于分析、恢复和增强数字图像和视频。Amped FIVE能够稳定抖动的视频&…

Linux:ansible-playbook配置文件(剧本)(进阶)

Linux&#xff1a;ansible-playbook配置文件&#xff08;剧本&#xff09;_ansible-playbook -i参数-CSDN博客https://blog.csdn.net/w14768855/article/details/132579492?ops_request_misc%257B%2522request%255Fid%2522%253A%2522170930036016800215061982%2522%252C%2522s…

LaTeX排版论文的常见问题汇总(持续更新中)

文章目录 LaTeX排版论文的常见问题汇总&#xff08;持续更新中&#xff09;1.如何上传期刊或会议提供的LaTeX模板&#xff1f;2.模板中各文件的说明3.LaTeX中如何设置字体大小&#xff1f;3.1如何设置表格中的字体大小&#xff1f;3.2如何设置表格、图片标题的字体大小&#xf…

A/D转换

硬件电路模型 模数转换代码 main.c #include <REGX52.H> #include "LCD1602.h" #include "Delay.h" #include "XPT2046.h"unsigned int ADValue; int main(){LCD_Init();LCD_ShowString(1,1,"ADJ NTC RG");while(1){ADValue …

什么是Vue的服务端渲染(SSR)?它有什么作用?

Vue的服务端渲染&#xff08;SSR&#xff09;是指将Vue组件在服务器端进行渲染&#xff0c;然后将已经渲染好的页面返回给浏览器&#xff0c;相比于传统的客户端渲染&#xff0c;SSR可以更好地优化SEO和加速首屏加载速度。在传统的客户端渲染中&#xff0c;浏览器需要加载所有的…

【MySQL系列】在 MacOS 上安装 MySQL

在 MacOS 上有两种方式安装 MySQL 服务器&#xff1a;通过 brew 安装和通过安装包安装。 文章目录 1、通过 brew 安装 MySQL1.1、安装 MySQL1.2、启动 MySQL 服务器1.3、配置 MySQL 服务器1.4、MySQL 服务器管理命令 2、通过安装包安装 MySQL2.1、下载安装包2.2、安装 MySQL2.3…

深入理解快速排序算法:从原理到实现

目录 1. 引言 2. 快速排序算法原理 3. 快速排序的时间复杂度分析 4. 快速排序的应用场景 5. 快速排序的优缺点分析 5.1 优点&#xff1a; 5.2 缺点&#xff1a; 6. Java、JavaScript 和 Python 实现快速排序算法 6.1 Java 实现&#xff1a; 6.2 JavaScript 实现&#…

30、类和接口

文章目录 接口概念接口和类之间有何关系&#xff1f; 可以使用接口来约束类接口继承接口接口还可以继承类接口为什么可以继承类内层原因&#xff1a;接口为什么可以继承类 用得出的结论解释最初的demo接口继承类的一些限制 接口概念 接口&#xff08;Interfaces&#xff09;可…

【大厂AI课学习笔记NO.61】环境部署的选择

主要是选择单机和分布式、生产和开发环境的规划等。 开发环境、测试环境、预发布环境和生产环境是软件开发和部署过程中常见的几个环境&#xff0c;它们各自的定义、区别、联系以及实现的关键技术如下&#xff1a; 1. 开发环境&#xff08;Development Environment&#xff09…

完全解析淘宝天猫详情接口API:购物小白也能秒变高手

在如今的电商领域中&#xff0c;淘宝和天猫是最为重要和热门的平台之一。作为购物平台的用户&#xff0c;我们通常只是浏览商品的页面&#xff0c;点击购买和支付&#xff0c;却未能深入了解背后的技术信息。然而&#xff0c;淘宝天猫详情接口API的了解和运用&#xff0c;联讯数…

力扣hot4--双指针

题目&#xff1a; 双指针想法&#xff1a; i 指针在数组不为 0 的地方停留&#xff0c;j 指针在每个地方停留&#xff0c;依次交换 i 和 j 指针。当 i 指针遍历完所有数组元素时&#xff0c;j 指针指向的元素及后面的元素都为0。 代码如下&#xff1a; C版本 class Solution …

冒泡、插入、希尔、选择、堆排序、快速排序(附源码)

目录 插入排序&#xff1a; 核心思想&#xff1a; 时间复杂度&#xff1a; 冒泡排序&#xff1a; 核心思想&#xff1a; 时间复杂度&#xff1a; 希尔排序&#xff1a; 核心思想&#xff1a; 时间复杂度&#xff1a; 选择排序&#xff1a; 核心思想&#xff1a; 时间…

告别手动填写邀请码,这款App数据统计工具帮你轻松实现

在移动互联网时代&#xff0c;App的推广和运营已成为各大企业的必修课。然而&#xff0c;面对错综复杂的推广渠道和浩如烟海的数据&#xff0c;如何精准地追踪用户来源、优化推广策略&#xff0c;一直是困扰着运营者的难题。今天&#xff0c;我们就来聊聊一款能够帮助你轻松解决…

新火种AI|AI商业中的里程碑事件已敲定! 欧盟27国一致通过《人工智能法案》。

作者&#xff1a;小岩 编辑&#xff1a;彩云 根据路透社2月2日消息&#xff0c;欧盟国家就《人工智能法案》立法正式达成协议。 此次立法的成功堪称AI商业领域上的里程碑事件。因为单从商业视角来看&#xff0c;这一法案的通过率先为欧盟内部的人工智能创新提供了明确的法律…

在 Linux 上用 zram 替代传统交换空间 | Linux 中国

我在我的电脑上花了很多时间&#xff08;我是说工作&#xff09;&#xff0c;我发现了很多有趣的东西。其中最近引起我注意的是 zram0 设备。我是在几个月前写一篇文章时第一次注意到它&#xff0c;它显示在 lsblk 命令的输出中&#xff1a; # lsblk NAME MAJ:MIN RM…

【VPX637】基于XCKU115 FPGA+ZU15EG MPSOC的6U VPX双FMC接口通用信号处理平台

VPX637是一款基于6U VPX总线架构的通用实时信号处理平台&#xff0c;该平台采用一片Xilinx的高性能Kintex UltraScale系列FPGA&#xff08;XCKU115-2FLVF1924I&#xff09;作为预处理单元&#xff0c;外挂2个FMC扩展接口&#xff0c;来完成数据采集、数据回放以及实时信号处理算…

Java---文件,流✨❤️

文章目录 1.遍历文件夹2.遍历子文件夹3.练习流4.以字节流的形式读取文件内容5.以字节流的形式向文件写入数据顶折纠问6 .写入数据到文件 1.遍历文件夹 一般说来操作系统都会安装在C盘&#xff0c;所以会有一个 C:\WINDOWS目录。 遍历这个目录下所有的文件(不用遍历子目录) 找出…