监控系统状态
- ps 查看系统进程
- 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命令 查看系统全部进程(两种)
- 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