Linux查看进程的一些方法

ps

ps (英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。
-e:显示系统内的所有进程信息。
-l:使用长(long)格式显示进程信息。
-f:使用完整的(full)格式显示进程信息字段(UID,PPIP,C,STIME字段)。
-a:显示当前终端下的所有进程信息,包括其他用户的进程
-u:显示当前用户进程和内存使用情况,以用户为主的格式输出进程信息
-x:显示没有控制终端的进程,显示当前用户在所有终端下的进程
-sort:按照列名排序

ps -elf

UID:用户ID,即进程的拥有者,输出的是用户名
PID:进程ID
PPID:父进程ID
C:进程占用的CPU百分比
STIME:进程开始启动到现在的时间
TTY:登入者的终端机位置,该进程在哪个终端上运行,若与终端无关,则显示?,若为pts/0等,则表示由网络连接主机进程
TIME:进程使用的CPU(运算)时间
CMD:调用进程的命令的名称和参数

ps -aux

上述显示中,USER表示该进程的用户,PID表示进程ID,%CPU是CPU占用率,%MEM是内存占用率,VSZ是占用虚拟内存,RSS是占用实际内存,TTY是指进程运行的终端,STAT是指进程运行的状态,START是进程启动的时间,TIME是进程占用CPU的时间,COMMAND是进程对应的程序
STAT:显示了进程当前的状态,如S(休眠)、R(运行)、Z(僵死)、<(高优先级)、N(低优先级)、s(父进程)、+(前台进程),对处于僵死状态的进程应予以手动终止。 
STAT一列中,进程状态含义:
D 无法中断的休眠状态 (通常 IO 的进程)
R 正在执行中
S 静止状态,可中断睡眠
T 暂停执行,停止的进程
Z 僵尸进程,不存在但暂时无法消除
W 没有足够的记忆体分页可分配
< 高优先序的行程
N 低优先序的行程
L 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
X:死掉的进程
Ss:表示该进程是一个父进程,本身有子进程
S<:表示优先级较高的进程
SN:表示优先级较低的进程
R+:表示前台进程
Sl:表示以线程方式运行的进程

USER:启动该进程的用户账号名称
PID:该进程的ID号,在当前系统中是唯一的
%CPU:占用的 CPU 使用率
%MEM:内存占用的百分比 
VSZ:占用虚拟内存(swap空间)的大小
RSS:占用常驻内存(物理内存)的大小
TTY:该进程在哪个终端上运行。“?”表未知或不需要终端,终端的次要装置号码 (minor device number of tty)
START:启动该进程的时间
TIME:该进程占用CPU时间
COMMAND:启动该进程的命令的名称

ps -A和-a的区别

   ps a 显示现行终端机下的所有程序,包括其他用户的程序,除了session leaders和关联终端的进程
   ps -A 显示所有程序进程

ps的aux和-elf区别

1、输出风格不同
两者的输出结果差别不大,但展示风格不同。aux是BSD风格,-elf是System V风格。
2、aux会截断command列,而-ef不会,当结合grep时这种区别会影响到结果
一直以为ps aux就可以列出所有的在运行进程,最近发现还是有些缺陷,用ps aux和-ef得到的结果居然不一样,以后尽量用-ef参数吧
情况是这样的,我用 /bmrt/blaph/blaph/bmgctl来启动进程,由于ps aux是用BSD格式来显示结果,所以可能只会显示到/bmrt/blaph/blap,后面的都被截掉了。
这样,如果用 ps aux | grep bmgctl 来过滤该进程,可能就会误伤,获取不到bmgctl进程。
而ps -ef是用全格式的System V格式,显示出来就是带全路径的进程名,会显示出bmgctl,在 ps -ef | grep bmgctl 命令下就可以完整显示该进程了。

静态查看进程信息,可接受多种选项:
UNIX选项,需加破折号(-);
BSD选项,不需加破折号(-);
GNU长选项,需加两个破折号(-);

ps l

ps -l

F:该进程标志,说明进程权限
1:仅可复制,不可执行
4:进程权限为root
S:该进程状态,如R、S、D、T、Z
PRI:该进程优先级,值越小优先级越高
NI:该进程nice值
ADDR:该进程的内存地址
SZ:该进程交换空间大小
WCHAN:显示休眠进程的系统函数名

top

top命令可以动态查看进程,以全屏交互式的界面显示进程排名,及时跟踪包括CPU、内存等系统资源占用情况,默认情况下每三秒刷新一次,其作用基本类似于Windows系统中的任务管理器。
top命令常用参数如下:
-d 表示刷新的时间间隔,单位为s,如:top -d 5 : 指定显示信息更新时间间隔为5秒
-p 表示查看指定PID的进程
-u 表示查看指定用户的进程
-n 表示top刷新指定次数后退出
top命令使用示例:
top -d 1
top -p 100
top -n 3 >123.txt
top -u nginx
上述四条命令都表示用top查看系统进程,第一条命令表示刷新时间为1秒,第二条命令表示只查看PID100的进程,第三条表示将top刷新3次的结果写入到123.txt文档中,第四条表示只显示用户为Nginx的进程。
top命令执行后结果如下:

此时按下q键退出查看状态。

Tasks(系统任务)信息:total,总进程数;running,正在运行的进程数;sleeping,休眠的进程数;stopped,中止的进程数;zombie,僵死无响应的进程数。
CPU信息:us,用户占用;sy,内核占用;ni,优先级调度占用;id,空闲CPU;wa,I/O等待占用;hi,硬件中断占用;si,软件中断占用;st,虚拟化占用。了解空闲的CPU百分比,主要看%id部分。
Mem(内存)信息:total,总内存空间;used,已用内存;free,空闲内存;buffers,缓存区域。
Swap(交换空间)信息:total,总交换空间;used,已用交换空间;free,空闲交换空间;cached,缓存空间。

按键操作

P,根据CPU使用百分比排序;
M,根据物理内存大小排序;
N,根据启动时间排序;
c,切换显示命令名称和完整命令行;
h,获得top进程在线帮助信息;
k,根据提示输入进程PID,并按Enter终止对应进程;
1,显示CPU个数和状态;

pstree 

以树状图的方式展现进程之间的派生关系,显示效果比较直观。
-a:显示每个程序的完整指令,包含路径,命令行参数或是常驻服务的标示;
-c:不使用精简标示法;
-G:使用VT100终端机的列绘图字符;
-h:列出树状图时,特别标明现在执行的程序;
-H<程序识别码>:此参数的效果和指定"-h"参数类似,但特别标明指定的程序;
-l:采用长列格式显示树状图;
-n:用程序识别码排序。预设是以程序名称来排序;
-p:显示PID;
-u:显示用户名称;

pstree -aup
可以带上|grep  查询特定进程。例如 pstree -aup | grep php

psgrep

基于名称和其他属性,来查询或显示进程;
-l,显示进程名字及PID;
-a,显示完整的命令行及PID;
-u,匹配用户ID的进程;
-n,仅显示最新进程的PID;
-o,仅显示最老进程的PID;
-t,显示匹配终端的进程PID;

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

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

相关文章

第111讲:Mycat实践指南:固定Hash算法分片下的水平分表详解

文章目录 1.固定Hash算法分片的概念1.1.固定Hash算法的概念1.2.固定Hash算法是如何将数据路由到分片节点的 2.使用固定Hash算法分片对某张表进行水平拆分2.1.在所有的分片节点中创建表结构2.2.配置Mycat实现固定Hash算法分片的水平分表2.2.1.配置Schema配置文件2.2.2.配置Rule分…

微信开发者工具如何使用?使用注意事项

&#xff08;1&#xff09;单位如何进行换算&#xff1f; 1 px 750/屏幕宽度 rpx 1 rpx 屏幕宽度/750 px &#xff08;2&#xff09;如何新建文件&#xff1f; 1> 点开app.json 2> 在“pages/index/index”后面接“&#xff0c;pages/自定义文件夹名/自定义文件名”…

FPGA 学习需要哪些东西?

FPGA 学习需要哪些东西&#xff1f; 三样东西&#xff1a;第一就是完整的理论&#xff0c;第二一套开发板&#xff0c;第三可练手的项目 第一&#xff0c;一套完整的课程&#xff0c; 这个课程必须是紧跟技术发展的&#xff0c;适应市场的&#xff0c;这样不至于学完后发现太…

开源Ai对话系统(MNAi)系统

支持对接gpt&#xff0c;阿里云&#xff0c;腾讯云/chatGPT源码/AI绘画系统/AI创作系统/AI写作系统 具体看截图 后端环境&#xff1a;PHP7.4MySQL5.6 软件&#xff1a;uniapp 部署教程请看源码内的【使用教程】文档 源码免费下载地址抄笔记 chaobiji.cn

【计算机网络篇】物理层(3)编码与调制

文章目录 &#x1f354;编码与调试⭐基本概念 &#x1f354;基本的带通调制方法和混合调制方法⭐基本的带通调制方法⭐混合调制方法 &#x1f354;编码与调试 物理层是OSI模型中的第一层&#xff0c;它负责在物理媒体上传输原始比特流。在物理层的编码和调试中&#xff0c;我们…

leetcode106从中序与后序遍历序列构造二叉树

目录 1.解题关键2.思路3.变量名缩写与英文单词对应关系4.算法思路图解5.代码 本文针对原链接题解的比较晦涩的地方重新进行说明解释 原题解链接&#xff1a;https://leetcode.cn/problems/construct-binary-tree-from-inorder-and-postorder-traversal/solutions/50561/tu-jie-…

3D Tiles语义分割流水线

Dylan Chua 和 Anne Lee 开发了一个处理管线&#xff0c;用于对 3D Tiles 中包含的 GL 传输格式 (glTF) 模型进行语义分割。 该管道读取并遍历 3D Tileset&#xff0c;以输出包含元数据的经过转换的划分对象集。 该项目为 3D 语义分割器提供了最小可行产品&#xff0c;作为各种…

STM32CubeIDE基础学习-BEEP蜂鸣器实验

STM32CubeIDE基础学习-BEEP蜂鸣器实验 文章目录 STM32CubeIDE基础学习-BEEP蜂鸣器实验前言第1章 硬件介绍第2章 工程配置2.1 工程外设配置部分2.2 生成工程代码部分 第3章 代码编写第4章 实验现象总结 前言 前面学习了LED闪烁实验&#xff0c;现在来学习一下蜂鸣器发声实验&am…

JVM工作原理与实战(四十四):JVM常见面试题目

专栏导航 JVM工作原理与实战 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、JVM常见面试题目 1.有哪些常用的垃圾回收器&#xff1f; 2.什么是内存泄漏&#xff0c;如何解决内存泄漏问题&#xff1f; 3.请列举并简要描述一些常用的JVM工具及其主要功能。 …

用python写网络爬虫:3.urllib库进一步的使用方法

文章目录 异常处理URLErrorHTTPError设置超时时间 链接的解析、构造、合并urlparse方法urlsplit方法urljoin方法urlencode方法parse_qs方法quote方法 Robots 协议Robots 协议的结构解析协议 参考书籍 在上一篇文章&#xff1a;用python写网络爬虫&#xff1a;2.urllib库的基本用…

Nginx底层基础数据结构

基础数据结构 ngx_int_t 32位操作系统4字节,64位操作系统8字节 解决跨平台以及,普通int类型在x86和x64操作系统上面是4字节,在类型转换时造成内存浪费(如在x64下面转换long类型) typedef intptr_t ngx_int_t;#ifdef _WIN64 typedef __int64 intptr_t; #else typedef _…

Canal实现mysql与缓存同步

什么是Canal Canal是阿里巴巴旗下的一款开源项目, 基于java开发. Canal是基于mysql的主从同步来实现的. github地址: https://github.com/alibaba/canal Canal把自己伪装成MySQL的一个slave节点, 从而监听master的binary log变化. 再把得到的变化信息通知给Canal的客户端, 进而…

vue3 element plus 上传下载

文章目录 上传下载 上传 /* html */ <el-upload v-model"fileId" class"avatar-uploader" ref"exampleUploadRef" :file-list"fileList" :show-file-list"false" action"/ys-three-year/ThreeReport/uploadFile&q…

Python从0到100(五):Python分支结构和循环结构

一、分支结构&#xff1a; Python中的分支结构和循环结构是编写程序时常用的控制结构。在Python中&#xff0c;分支结构通过if、elif和else关键字来实现条件判断。在使用if语句时&#xff0c;程序会根据条件表达式的真假执行相应的代码块。 if condition1:# 如果条件1为真&am…

YOLOv5改进 | 图像去雾 | 利用图像去雾网络UnfogNet辅助YOLOv5进行图像去雾检测(全网独家首发)

一、本文介绍 本文给大家带来的改进机制是利用UnfogNet超轻量化图像去雾网络,我将该网络结合YOLOv5针对图像进行去雾检测(也适用于一些模糊场景),我将该网络结构和YOLOv5的网络进行结合同时该网络的结构的参数量非常的小,我们将其添加到模型里增加的计算量和参数量基本可…

每天一点正压采样器小知识

只要你奔跑&#xff0c;这个世界就会跟着你奔跑&#xff0c; 只要你停驻&#xff0c;这个世界就会舍弃你独自奔跑&#xff0c; 唯有你确定一个方向&#xff0c;使劲的跑起来&#xff0c; 这个世界会为你而让路。 每天一点正压采样器小知识 该采样器活赛与气筒采用全金属密封&am…

操作系统知识-存储管理+文件管理管理-嵌入式系统设计师备考笔记

0、前言 本专栏为个人备考软考嵌入式系统设计师的复习笔记&#xff0c;未经本人许可&#xff0c;请勿转载&#xff0c;如发现本笔记内容的错误还望各位不吝赐教&#xff08;笔记内容可能有误怕产生错误引导&#xff09;。 本章的主要内容见下图&#xff1a; 1、存储管理&#…

[c++]内存管理

1. C/C内存分布 我们先来看下面的一段代码和相关问题 int globalVar 1; static int staticGlobalVar 1; void Test() { static int staticVar 1; int localVar 1; int num1[10] { 1, 2, 3, 4 }; char char2[] "abcd"; const char* pChar3 "abcd"; …

Redis 八种常用数据类型详解

夯实基础&#xff0c;这篇文章带着大家回顾一下 Redis 中的 8 种常用数据类型&#xff1a; 5 种基础数据类型&#xff1a;String&#xff08;字符串&#xff09;、List&#xff08;列表&#xff09;、Set&#xff08;集合&#xff09;、Hash&#xff08;散列&#xff09;、Zse…

想进阿里?先搞懂Spring Bean的循环依赖!

如有疑问或者更多的技术分享,欢迎关注我的微信公众号“知其然亦知其所以然”! 嗨,小伙伴们!我是小米,你们的技术分享小助手!今天我们要聊的话题可是技术圈内颇为热门的“阿里巴巴面试题:Spring的循环依赖”哦!相信很多小伙伴都会在技术面试中遇到类似的问题,没错,循…