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
- 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 数组属性和方法
- Python开发简单记事本
- 在stm32开发可以调用c标准库的排序和查找 qsort bsearch
- Python解析excel文件并存入sqlite数据库
- python学习总结
- C语言calloc()函数:分配内存空间并初始化——stm32中的应用
- 提升代码的运算速度——代码优化的方法总结
- 自己实现sizeof+大小端测试
- 写一个程序检查一个整数是2的幂
- 持续部署入门:基于 Kubernetes 实现滚动发布
- Python源码分析(一)
- Learning Scrapy(一)
- Python源码分析(二) - List对象
- Python多线程机制
- Python高级用法总结
- Python中的上下文管理器和with语句