10.8 ps命令

监控系统状态

  • 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号 ,会看到进程启动的目录
  • 第三列,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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏黑泽君的专栏

安装最新版本的Oracle公司的虚拟机软件 VirtualBox + 安装虚拟机 Windows XP 系统 + 安装 Oracle 11g 软件 + 出现 ERROR: ORA-12541: TNS

  VirtualBox的下载链接:https://www.virtualbox.org/wiki/Downloads

2631
来自专栏meteorzx

express模拟接口

Failed to load http://192.168.xxx.xxx:9092/api/user/query?id=user123&name=%E6%B5...

4876
来自专栏技术博客

Log4Net异常日志记录在asp.net mvc3.0的应用

log4net是.Net下一个非常优秀的开源日志记录组件。log4net记录日志的功能非常强大。它可以将日志分不同的等级,以不同的格式,输出到不同的媒介。本文主...

1111

如何自动地将代码从Git平台部署至组件容器

将源代码从Git平台部署至组件容器有很多种可以选择的方法,包括重新部署整个容器,通过卷即时重新部署,或者使用“git clone”的方法。但是,当这个过程自动化...

2409
来自专栏前端之心

dig 命令洞察 DNS 解析过程

在上一篇文章,我们介绍了域名解析的过程,本章我们将介绍一个实用的工具---dig命令,通过dig命令我们可以查看 DNS 解析的过程,以便我们更好的理解 DNS...

6747
来自专栏北京马哥教育

使用Jenkins构建持续集成平台

前言 持续集成这个概念已经成为软件开发的主流,可以更频繁的进行测试,尽早发现问题并提示。自动化部署就更不用说了,可以加快部署速度,并可以有效减少人为操作的失误。...

4245
来自专栏大数据实战演练

Nginx安装配置及使用

-bash:warning:setlocale:LC_CTYPE:cannot change locale(en_US.UTF-8):Nosuch fileor...

4182
来自专栏程序员的诗和远方

React-Native For Android 环境搭建及踩坑

安装环境 本文默认以MacOS为系统,毕竟除了用React Native搞Android,你也会想用它搞iOS。 首先当然是Android的环境搭建,这里还是推...

3326
来自专栏Hadoop实操

3.如何实现OpenLDAP的主主同步

前面Fayson文章讲《1.如何在CentOS6.5安装OpenLDAP并配置客户端》以及《2.OpenLDAP集成SSH登录并使用SSSD同步用户》,那么如何...

6015
来自专栏Java帮帮-微信公众号-技术文章全总结

Quartz调度源码分析【面试+工作】

Quartz内部提供的调度类是QuartzScheduler,而QuartzScheduler会委托QuartzSchedulerThread去实时调度;当调度...

1262

扫码关注云+社区

领取腾讯云代金券