10.8 ps命令
时间:2022-04-27
本文章向大家介绍10.8 ps命令,主要内容包括监控系统状态、ps命令 查看系统所有进程(两种)、ps命令查看进程是否在存在、重点部分 STAT、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
监控系统状态
- ps 查看系统进程
- 用法:ps aux、ps -elf
- STAT部分说明
- D 不能中断的进程
- R run状态的进程
- S sleep状态的进程
- T 暂停的进程
- Z 僵尸进程
- < 高优先级进程
- N 低优先级进程
- L 内存中被锁了内存分页
- s 主进程
- l 多线程进程
- 字符+ 前台进程
ps命令
- ps命令,汇报当前系统的进程状态
- ps用法(常用两种方法)
- ps aux 会把系统中所有的进程给列出来,静态的显示出来
[root@localhost ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.7 50772 7156 ? Ss 15:49 0:01 /usr/lib/systemd/system
root 2 0.0 0.0 0 0 ? S 15:49 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 15:49 0:00 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< 15:49 0:00 [kworker/0:0H]
root 6 0.0 0.0 0 0 ? S 15:49 0:00 [kworker/u128:0]
root 7 0.0 0.0 0 0 ? S 15:49 0:00 [migration/0]
root 8 0.0 0.0 0 0 ? S 15:49 0:00 [rcu_bh]
root 9 0.0 0.0 0 0 ? S 15:49 0:00 [rcuob/0]
root 10 0.0 0.0 0 0 ? S 15:49 0:00 [rcuob/1]
root 11 0.0 0.0 0 0 ? S 15:49 0:00 [rcuob/2]
root 12 0.0 0.0 0 0 ? S 15:49 0:00 [rcuob/3]
root 13 0.0 0.0 0 0 ? S 15:49 0:00 [rcuob/4]
root 14 0.0 0.0 0 0 ? S 15:49 0:00 [rcuob/5]
root 15 0.0 0.0 0 0 ? S 15:49 0:00 [rcuob/6]
root 16 0.0 0.0 0 0 ? S 15:49 0:00 [rcuob/7]
等等等,只截取了一部分——>这里显示出了所有的进程
对比
- top命令,动态显示,把cpu的、内存的做一个排行榜出来
- ps命令,是静态的显示,一次性把所有的状况列出来
- ps和top命令显示的结果非常相似
ps命令 查看系统所有进程(两种)
- ps aux 查看系统所有进程
- ps -elf 显示出的效果和ps aux基本类似
[root@localhost ~]# ps aux //查看系统所有进程
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.7 50772 7156 ? Ss 11月28 0:01 /usr/lib/systemd/syst
root 2 0.0 0.0 0 0 ? S 11月28 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 11月28 0:00 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< 11月28 0:00 [kworker/0:0H]
root 6 0.0 0.0 0 0 ? S 11月28 0:00 [kworker/u128:0]
root 7 0.0 0.0 0 0 ? S 11月28 0:00 [migration/0]
root 8 0.0 0.0 0 0 ? S 11月28 0:00 [rcu_bh]
root 9 0.0 0.0 0 0 ? S 11月28 0:00 [rcuob/0]
root 10 0.0 0.0 0 0 ? S 11月28 0:00 [rcuob/1]
root 11 0.0 0.0 0 0 ? S 11月28 0:00 [rcuob/2]
等等等,只截取了一部分——>这里显示出了所有的进程
[root@localhost ~]# ps -elf //查看系统所有进程
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
4 S root 1 0 0 80 0 - 12693 ep_pol 11月28 ? 00:00:01 /usr/lib/syst
1 S root 2 0 0 80 0 - 0 kthrea 11月28 ? 00:00:00 [kthreadd]
1 S root 3 2 0 80 0 - 0 smpboo 11月28 ? 00:00:00 [ksoftirqd/0]
1 S root 5 2 0 60 -20 - 0 worker 11月28 ? 00:00:00 [kworker/0:0H
1 S root 6 2 0 80 0 - 0 worker 11月28 ? 00:00:00 [kworker/u128
1 S root 7 2 0 -40 - - 0 smpboo 11月28 ? 00:00:00 [migration/0]
1 S root 8 2 0 80 0 - 0 rcu_gp 11月28 ? 00:00:00 [rcu_bh]
1 S root 9 2 0 80 0 - 0 rcu_no 11月28 ? 00:00:00 [rcuob/0]
1 S root 10 2 0 80 0 - 0 rcu_no 11月28 ? 00:00:00 [rcuob/1]
等等等,只截取了一部分——>这里显示出了所有的进程
- 第一列,显示出进程的运行用户
- 第二列,进程的PID
- 在杀死一个进程的时候,就回需要使用PID,命令 kill PID号
- 例子:kill 1346
- 然后ps aux |grep qmgr 会看到的该进程被杀掉了
- 在系统被黑了,遇到一个不知道的进程(有可能是被入侵的进程),在杀死该进程的时候,就需要先知道PID号
- 先查看PID号,进程在哪里启动起来的
- ls -l /proc/PID号 ,会看到进程启动的目录
- 先查看PID号,进程在哪里启动起来的
- 在杀死一个进程的时候,就回需要使用PID,命令 kill PID号
- 第三列,CPU百分比
- 第四列,内存百分比
- 第五列,虚拟内存
- 第六列,物理内存
- 第七列,是在哪一个TTY上
- 第八列,STAT,表示进程的状态,是我们需要关注的一列!
- STAT有这几种状态
- D 不能中断的进程 (会直接影响CPU资源)
- R run状态的进程(正在跑的进程,表示某一个时间段内,使用的CPU)
- S sleep状态的进程
- T 暂停的进程
- Z 僵尸进程
- 字符< 高优先级进程
- N 低优先级进程
- L 内存中被锁了内存分页
- s 主进程
- l 多线程进程
- 字符+ 前台进程
- 第九列,什么时候启动的
- 第十列,TIME,运行了多久了
- 第十一列,命令
线程和进程最大的区别:
1 进程里包含了线程,线程是进程的子单元
2 同一个进程下的线程全部共享相同的内存,而进程之间内存相互隔离。
ps命令查看进程是否在存在
- ps aux |grep nginx //查看nginx进程是否在存在
- ps aux |grep mysql //查看mysql进程是否存在
[root@localhost ~]# ps aux |grep nginx //查看nginx进程是否在存在
root 2619 0.0 0.0 112656 984 pts/0 R+ 00:00 0:00 grep --color=auto ngin
[root@localhost ~]# ps aux |grep mysql //查看mysql进程是否存在
root 2643 0.0 0.0 112656 984 pts/0 R+ 00:02 0:00 grep --color=auto mysq
[root@localhost ~]#
重点部分 STAT
- velocity模板引擎学习(1)
- mybatis 3.x 缓存Cache的使用
- XStream、JAXB 日期(Date)、数字(Number)格式化输出xml
- mac: vmware fusion中cent os启动假死的解决办法
- java:hibernate + oracle之坑爹的clob
- 启用WCF NetTcpBinding的共享端口
- asp中的md5/sha1/sha256算法收集
- UE4从零搭建CF游戏关卡(蓝图篇)
- 通用的序列号生成器库
- 利用Geneva开发SOA的安全模型
- STOMP协议介绍
- ADO.NET实体框架连接串引发的异常:Unable to load the specified metadata resource
- Mono产品生命周期
- WordPress免插件仅代码实现文章归档模板 II
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 手把手教你,嘴对嘴传达------Apache网页优化
- jQuery通过Ajax实现请求后台接口数据
- Git常规操作
- 手把手教你,嘴对嘴传达 ----源码编译安装部署LAMP平台(LAMP平台与编译安装详解,Apache,MySQL与PHP源码编译安装,LAMP平台搭建论坛)
- Vue点击切换样式
- ElementUI引入到vue项目开发
- 手把手教你,嘴对嘴传达------Apache(安全优化防盗链、隐藏版本信息)
- spring框架应用系列三:切面编程(带参数)
- 排障集锦:九九八十一难之第六难!(98)Address already in use: AH00072: make_sock: could not bind to address ::80
- Vue页面中引用自定义组件
- Vue如何引用Vant组件
- js表单验证工具包
- 手把手教你,嘴对嘴传达------Nginx网站服务(访问状态统计,基于域名,端口,IP的虚拟web主机访问)
- lib-flexible引入到Vue做移动端rem布局
- 微信小程序引入VantWeapp开发