学Linux的第八天

目录

管理进程

概念

程序、进程、线程

进程分类

查看进程

ps命令

unix  风格

bsd风格

GNU风格

top命令

格式

统计信息区

进程信息区:显示了每个进程的运行状态

kill命令

作用

格式


管理进程

概念

程序、进程、线程

程序: 二进制文件,文件存储在磁盘中,例如 /usr/bin/ 目录下
进程:进程是已启动的可执行程序的运行实例
进程和程序并不是一一对应的关系,相同的程序运行在不同的数据集上就是不同的进程
线程:是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单
位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行
执行不同的任务。
一个进程可以拥有多个线程,而一个线程同时只能被一个进程所拥有
线程不能单独执行,但是每一个线程都有程序的入口、执行序列以及程序出口,它必须组成进程才
能被执行

进程分类

查看进程

ps命令

作用: ps 显示某个时间点的程序运行情况
格式
参数
ps - 参数
unix  风格


-a                     :显示当前shell的进程,不是所有用户的进程
-u   用户名称   : 显示指定用户的shell进程
有效用户id,运行的用户id
没有-x   
-e                     : 系统中所有进程
-l                      :显示更详细的内容,长格式
                           
 -w      数字      :     显示行宽
-f                      :  更完整输出


bsd风格


x     :无字符终端进程
 a    :有字符终端进程
 u    :利用用户信息进行归类
f      : 显示进程的层级关系


GNU风格


ps   -o(指定)   %cpu,%mem,command      :用于查看进程状态的命令,它可以提供有关当前正在运行的进程的各种详细信息,-o 用于指定输出的格式,即决定要显示哪些关于进程的信息以及以何种顺序显示。
ps   ax   --sort    -%cpu   -o   %cpu,pid       :以 CPU 使用率和进程 ID 这两个字段的形式展示排序后的进程列表并按照 CPU 使用率进行降序排序

示例
[root@server ~]# ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 0 32343 32342 0 80 0 - 56088 do_wai pts/2 00:00:00 bash
4 R 0 33566 32343 0 80 0 - 56375 - pts/2 00:00:00 ps
说明:
F:代表这个程序标志(process flags),说明这个程序的权限。常见号码有:4表示此程序的权限为
root;1表示此子程序仅进行复制(fork)而没有实际执行(exec)
S:代表这个程序的状态(STAT),主要的状态有:
R(Running):该程序正在运作中;
S(Sleep):该程序目前正在睡眠状态(idle),但可以被唤醒;
D:不可被唤醒的睡眠状态,通常可能是在等待I/O的情况;
T:停止状态(stop),可能是在工作控制(后台暂停)或traced状态;
Z(Zombie):僵尸状态,程序已经终止但却无法被移除至记忆体外。
+:位于后台的进程组
UID/PID/PPID:代表此程序被该UID所拥有/程序的PID号码/此程序的父进程PID号码。
C:代表CPU使用率,单位为百分比;
PRI/NI:Priority/Nice的缩写,代表此程序被CPU所执行的优先顺序,数值越小代表该程序越快被CPU执
行。
ADDR/SZ/WCHAN:都与内存有关,ADDR是kernel funcition,指出该程序在内存的哪个部分,如果是
running的程序,一般会显示-。SZ代表此程序用掉多少内存,WCHAN表示目前程序是否运作中,若为-表示正
在运行。
TTY:登入者的终端机位置,若为远程终端登入则使用动态终端界面(pts/n)。
TIME:使用掉的CPU时间,即此程序实际花费CPU运作的时间。
CMD:触发此进程的指令是什么。
# 查看所有用户执行的进程的详细信息
[root@server ~]# ps -le
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 1 0 0 80 0 - 44776 do_epo ? 00:00:01 systemd
1 S 0 2 0 0 80 0 - 0 - ? 00:00:00 kthreadd
1 I 0 3 2 0 60 -20 - 0 - ? 00:00:00 rcu_gp
# 查看当前用户的进程
[root@server ~]# ps -u
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1280 2.2 0.2 237304 5408 tty1 Ss+ 15:54 0:00 -bash
root 1415 0.1 0.2 237172 5092 pts/0 Ss 15:55 0:00 -bash
root 1452 0.0 0.2 268484 4008 pts/0 R+ 15:55 0:00 ps -u
[root@localhost ~]# ps aux | less
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 2164 648 ? Ss 08:47 0:00
init [5]
#############################
说明:
USER: 运行进程的用户
PID: 进程ID
%CPU: CPU占用率
%MEM: 内存占用率
VSZ: 占用虚拟内存
RSS: 占用实际内存 驻留内存
TTY: 进程运行的终端
STAT: 进程状态 man ps (/STATE)
R 运行
S 可中断睡眠 Sleep
D 不可中断睡眠
T 停止的进程
Z 僵尸进程
X 死掉的进程
s 进程的领导者,父进程
< <优先级较高的进程
top命令
格式
参数
N N优先级的进程
+ +表示是前台的进程组
l 以线程的方式运行
START: 进程的启动时间
TIME: 进程占用CPU的总时间
COMMAND: 进程文件,进程名
#############################
[root@server ~]# ps -le
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 1 0 0 80 0 - 44776 do_epo ? 00:00:01 systemd

# 自定义显示字段
[root@server ~]# ps axo user,pid,ppid,%mem,command
USER PID PPID %MEM COMMAND
root 1 0 0.7 /usr/lib/systemd/systemd --switched-root --system
root 2 0 0.0 [kthreadd]
root 3 2 0.0 [rcu_gp]
# 查看进程树
[root@server ~]# pstree
# 查看指定进程的PID
[root@server ~]# ps aux | grep sshd
[root@server ~]# cat /run/sshd.pid
# 查看指定进程的PID
[root@server ~]# pgrep -l sshd
[root@server ~]# pidof sshd
# 查看指定进程的PID
[root@server~]# pidof sshd

top命令

格式
top [-d 数字] | [-bnp]
-d:后面可以接秒数,就是整个进程界面更新的秒数,默认是5秒
-b:以批次的方式执行top,还有更多的参数可用。通常会搭配数据流重定向来将批处理的结果输出为文件。
-n:与-b搭配,进行几次top的输出结果
-i:不显示闲置或者僵死的进程信息
-c:显示进程的整个命令路径,而不是只显示命令名称
-s:使top命令在安全模式下运行,此时top的交互式指令被取消,避免潜在危险
-p:指定某些个PID来进行查看检测
[root@localhost ~]# top -d 1
[root@localhost ~]# top -d 1 -p id 查看指定进程的动态信息
top 的输出可以分为 统计信息区 进程信息区 两个部分,即前 5 行为统计信息区,后面为进程信息
区。
统计信息区

第一行为任务队列信息:top - 17:21:03 up 4:32, 5 users, load average: 0.19, 0.08,
0.06
17:21:03表示当前系统时间;
up 4:32表示系统已经启动4小时32分钟了;
5 users表示当前登录系统的用户数;
load average: 0.19, 0.08, 0.06表示系统1分钟、5分钟、15分钟前到现在的平均负载(如果是1
表示满负载)
第二行:Tasks: 483 total, 3 running, 480 sleeping, 0 stopped, 0 zombie
483 total进程的总数
3 running正在运行的进程数
480 sleeping处于休眠状态的进程数
0 stopped停止的进程数
0 zombie僵死的进程数
第三行:%Cpu(s): 0.3 us, 0.7 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0
st
0.3 us表示用户进程占用CPU的百分比
0.7 sy系统进程占用CPU的百分比;
0.0 ni用户进程空间内改变过优先级的进程占用CPU的百分比
99.0 id空闲CPU占用的百分比
0.0 wa代表I/Owait表示等待输入、输出的进程占用CPU的百分比;
0.0 hi表示cpu服务于硬件中断所耗费的时间总额
0.0 si表示cpu服务于软件中断所耗费的时间总额;
0.0 st表示虚拟机被hypervisor偷去的cpu时间
另外,如果是多内核设备,可按下数字键“1”来切换成不同cpu的负载率。
第四行、第五行
MiB Mem : 1790.0 total, 1278.5 free, 240.5 used, 271.0 buff/cache
MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 1393.8 avail Mem
total系统的内存大小
free目前空余内存大小
used已经使用的内存大小
#############################
进程信息区:显示了每个进程的运行状态
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 179104 13540 8728 S 0.0 0.7 0:01.22 systemd
PID:进程的id
USER:进程所有者的用户名
PR:进程优先级
NI:nice值。负值表示高优先级,正值表示低优先级
VIRT:进程使用的虚拟内存总量,单位为KB
RES:进程使用的、未被换出的物理内存大小,单位KB
SHR:共享内存大小,单位KB
S:进程状态,D表示不可中断的睡眠状态,R表示运行状态,S表示睡眠状态,T表示跟踪/停止,Z表示僵
死进程
%CPU:上次更新到现在的CPU时间占用百分比
%MEM:进程占用的物理内存百分比
TIME+:进程总计使用的CPU时间,单位为1/100秒
COMMAND:正在运行进程的命令名或者命令路径
可以在 RHEL9 中安装 epel-release 源后安装 htop ,是 top 的升级版

kill命令

作用

进程信号的控制工具
2,3,9,15,18,19,20--进程的信号

格式

kill    进程 id
killall 进程名    --可删除所有进程

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

uniCloud云对象调用第三方接口,根据IP获取用户归属地的免费API接口,亲测可用

需求 在2022年5月初&#xff0c;网络上各大平台上&#xff0c;都开始展示用户IP属地&#xff0c;在某音、某手等小视频平台以及各主流网站应用中&#xff0c;都展示IP归属地&#xff0c;如下图所示&#xff1a; 解决办法 收费文档的肯定有很多&#xff0c;基本你百度搜“归…

Leetcode - 143双周赛

目录 一&#xff0c;3345. 最小可整除数位乘积 I 二&#xff0c;3346. 执行操作后元素的最高频率 I 1.差分数组 2.同向三指针 滑动窗口 三&#xff0c; 3348. 最小可整除数位乘积 II 一&#xff0c;3345. 最小可整除数位乘积 I 本题直接暴力枚举&#xff0c;题目求 >n…

VS2022项目配置笔记

文章目录 $(ProjectDir&#xff09;与 $(SolutionDir) 宏附加包含目录VC目录和C/C的区别 $(ProjectDir&#xff09;与 $(SolutionDir) 宏 假设有一个解决方案 MySolution&#xff0c;其中包含两个项目 ProjectA 和 ProjectB&#xff0c;目录结构如下&#xff1a; C:\Projects\…

ReactPress:深入解析技术方案设计与源码

ReactPress Github项目地址&#xff1a;https://github.com/fecommunity/reactpress 欢迎提出宝贵的建议&#xff0c;欢迎一起共建&#xff0c;感谢Star。 ReactPress是一个基于React框架开发的开源发布平台&#xff0c;它不仅仅是一个简单的博客系统&#xff0c;更是一个功能全…

[编译报错]ImportError: No module named _sqlite3解决办法

1. 问题描述&#xff1a; 在使用python进行代码编译时&#xff0c;提示下面报错&#xff1a; "/home/bspuser/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py", line 18, in <module>import sqlite3File "/usr/local/lib/python2.7/sqlite3/_…

信号量和线程池

1.信号量 POSIX信号量&#xff0c;用与同步操作&#xff0c;达到无冲突的访问共享资源目的&#xff0c;POSIX信号量可以用于线程间同步 初始化信号量 #include <semaphore.h> int sem_init(sem_t *sem, int pshared, unsigned int value); sem&#xff1a;指向sem_t类…

泷羽sec学习打卡-Linux基础2

声明 学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负 关于Linux的那些事儿-Base2 一、Linux-Base2linux有哪些目录呢&#xff1f;不同目录下有哪些具体的文件呢…

【Android、IOS、Flutter、鸿蒙、ReactNative 】约束布局

Android XML 约束布局 参考 TextView居中 TextView 垂直居中并且靠右 TextView 宽高设置百分比 宽和高的比例 app:layout_constraintDimensionRatio"h,2:1" 表示子视图的宽高比为2:1&#xff0c;其中 h表示保持宽度不变&#xff0c;高度自动调整。 最大宽度 设…

使用HTML、CSS和JavaScript创建动态圣诞树

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 ✨特色专栏&#xff1a…

golang分布式缓存项目 Day1 LRU 缓存淘汰策略

注&#xff1a;该项目原作者&#xff1a;https://geektutu.com/post/geecache-day1.html。本文旨在记录本人做该项目时的一些疑惑解答以及部分的测试样例以便于本人复习。 LRU缓存淘汰策略 三种缓存淘汰策略 FIFO&#xff08;First In, First Out&#xff09;先进先出 原理&…

面向对象的需求分析和设计(一)

[toc] 1. 引言 前一篇文章《我对需求分析的理解》提到了面向对象分析和设计&#xff0c;正好最近又重新有重点的读了谭云杰著的《Think in UML》&#xff0c;感觉有必要写把书中一些核心内容观点以及自己的想法整理出来&#xff0c;一是方便自己日后的复习&#xff0c;另外也…

php中ajax怎么使用【小白专用24.11.12】

在PHP中&#xff0c;使用Ajax可以实现页面异步加载和动态数据交互。下面是使用Ajax的基本方法&#xff1a; <?php // ajax_endpoint.php// 处理请求&#xff0c;并返回JSON格式的响应 $responseData array(message > Hello from PHP!); header(Content-Type: applicati…

【css】html里面的图片宽度设为百分比,高度要与宽度一样

场景&#xff1a;展示图片列表的时候&#xff0c;原始图片宽高不一致。 外层div的宽度自适应&#xff0c;图片宽度不能固定数值&#xff0c;只能设置百分比。图片高度也不能设置固定数值。 如何让图片的高度与图片的宽度一样呢&#xff1f; html代码 &#xff1a; <div cl…

开源项目推荐——OpenDroneMap无人机影像数据处理

实景三维作为GIS最火的课题&#xff0c;最近在想做一套自己的三维构建工具&#xff0c;考察了几个开源项目&#xff0c;把自己的搜索过程用csdn记录下来&#xff0c;希望也能帮助到各位同仁。 OpenDroneMap&#xff08;ODM&#xff09;是一个开源项目&#xff0c;旨在处理无人…

快速提升ROI,收藏这份Facebook广告投放技巧!

Facebook广告在海外数字营销中占据重要地位。据统计&#xff0c;约有 700 万广告商活跃在该平台上&#xff0c;购买力不容小觑。 然而&#xff0c;当前 Facebook 广告竞争激烈&#xff0c;导致广告位供不应求&#xff0c;成本上升&#xff0c;尤其是在下半年营销旺季中&#xf…

C++提高编程-泛型编程

一、模板&#xff1a; 1.1.模板的概念: 1.模板就是建立通用的模具&#xff0c;大大提高复用性2.例如生活中的模板: 一寸照片模板&#xff1a; PPT模板&#xff1a; 模板的特点&#xff1a; 模板不可以直接使用&#xff0c;它只是一个框架模板的通用并不是万能的 二、泛型编…

漫谈分布式唯一ID

文章目录 本系列前言UUIDDB自增主键Redis incr命令号段模式雪花算法 本系列 漫谈分布式唯一ID&#xff08;本文&#xff09;分布式唯一ID生成&#xff08;二&#xff09;&#xff1a;leaf分布式唯一ID生成&#xff08;三&#xff09;&#xff1a;uid-generator分布式唯一ID生成…

大语言模型LLMs在医学领域的最新进展总结

我是娜姐 迪娜学姐 &#xff0c;一个SCI医学期刊编辑&#xff0c;探索用AI工具提效论文写作和发表。 相比其他学科&#xff0c;医学AI&#xff0c;是发表学术成果最多的领域。 医学数据的多样性和复杂性&#xff08;包括文本、图像、基因组数据等&#xff09;&#xff0c;使得…

Vue 学习随笔系列十四 -- JavaScript巧妙用法

JavaScript巧妙用法 文章目录 JavaScript巧妙用法1、String.padStart 函数2、String.padEnd 函数3、tirm 函数3. Object.freeze 函数4. Object.fromEntries 函数5. Object.entries 函数6. Array.prototype.flat 函数 1、String.padStart 函数 在字符串前面进行填充 let temp …

【PGCCC】Postgresql 物理流复制

postgresql 提供了主从复制功能&#xff0c;有基于文件的拷贝和基于 tcp 流的数据传输两种方式。两种方式都是传输 wal 数据&#xff0c;前者是等待生成一个完整的wal文件后&#xff0c;才会触发传输&#xff0c;后者是实时传输的。可以看出来基于文件方式的延迟会比较高&#…