linux 进程 top ps命令详解

一、什么是进程

进程是已启动的可执行程序的运行实例,是程序运行的过程,动态的,有生命周期及运行状态。

线程是最小的执行单位,调度的基本单位

二、查看进程

2.1 查看静态进程

ps aux

a 只能查看系统里面运行的所有终端进程

u 查看进程的拥有者

x 显示系统内所有的进程

f 显示进程之间的父子关系

参数详解

ps aux

[root@localhost ~]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.3 125376  3844 ?        S<s  9月01   0:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root          2  0.0  0.0      0     0 ?        S    9月01   0:00 [kthreadd]
root          4  0.0  0.0      0     0 ?        S<   9月01   0:00 [kworker/0:0H]
USER          
PID进程ID
%CPUcpu的占用率
%MEM内存的占用率
VSZ进程占用虚拟内存的大小
RSS占用物理内存的大小
TTY?表示没有占用终端
STATR 运行 S可中断睡眠 D不可中断睡眠 T停止的进程 Z僵尸进程 X死掉的进程
START进程的启动时间
TIME进程占用cpu的总时间
COMMAND进程文件,进程名

 2.1.2 ps -ef

ps -ef

-e 显示所有进程

-l 长格式显示

-f 完整格式

ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 9月01 ?       00:00:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root          2      0  0 9月01 ?       00:00:00 [kthreadd]
root          4      2  0 9月01 ?       00:00:00 [kworker/0:0H]
root          5      2  0 9月01 ?       00:00:00 [kworker/u256:0]
root          6      2  0 9月01 ?       00:00:00 [ksoftirqd/0]
UID 用户id
PID

进程id

PPID父进程id
ccpu占用率
STIME进程开始时间
TTY开始此进程的TTY
TIME此进程运行的总时间
CMD命令名

2.2查看动态进程

2.2.1top

linux top命令详解(看这一篇就够了)_Steven.1的博客-CSDN博客

top - 01:14:08 up 10:31,  3 users,  load average: 0.00, 0.01, 0.05
Tasks:  96 total,   1 running,  95 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :   995672 total,   614560 free,   142320 used,   238792 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.   706580 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                  
     1 root      18  -2  125376   3844   2568 S  0.0  0.4   0:01.33 systemd                                                                  
     2 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd                                                                 
     4 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H                                                             
     5 root      20   0       0      0      0 S  0.0  0.0   0:00.75 kworker/u256:0                                                           
     6 root      20   0       0      0      0 S  0.0  0.0   0:00.27 ksoftirqd/0                                                              
     7 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 migration/0                                                              
     8 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcu_bh  

参数详解

第一行

内容详解
01:14:08当前时间
up 10:31系统运行时间
3 users当前登陆的用户数

load average

 0.00, 0.01, 0.05

平均负载,一分钟的平均负载,五分钟的平均负载

十五分钟的平均负载

第二行

内容详解
Tasks:  96 total进程总数
1 running正在运行的进程数量
95 sleeping正在休眠的进程数量
0 stopped停止运行的进程总数
0 zombie僵尸进程数

第三行

内容详解
0.0us用户占用CPU的百分比
0.0sy系统占用CPU的百分比

0.0ni

改变过优先级的进程占用CPU的百分比
100.0 id空闲百分比
0.0 wa 等得输入输出的CPU时间百分比
0.0 hi硬中断
0.0si软中断
0.0st虚拟机占用的cpu

第四行

内容详解
KiB Mem物理内存
995672 total物理内存总数
614560 free空闲的物理内存
142320 used已使用的物理内存
238792 buff/cache用作内核缓存的内存量

第五行

内容详解
KiB Swap交换区
2097148 total交换区总量
2097148 free使用的交换区总量
0 used空闲的交换区总量
706580 avail Mem缓冲的交换区总量

进程信息

列名详解
PID进程id
USER使用进程的用户
PR优先级
NI优先级 负值表示优先级高,正值表示优先级低
VIRT 进程使用的虚拟内存总量 kb
RES进程使用的、为被换出的物理内存大小 kb
SHR共享内存大小
S进程状态D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPUCPU的占用百分比
%MEM物理内存百分比
TIME+进程使用的CPU时间总计
COMMAND命令行

P 按cpu占用百分比排列

M按物理内存占用百分比排列

2.2.2htop

三、查看单个pid

3.1 pgrep 进程名

[root@localhost ~]# pgrep httpd
2297
2298
2299
2300
2301
2302

3.2 pidof 进程名

[root@localhost ~]# pidof httpd
2302 2301 2300 2299 2298 2297

3.3 ps aux | grep httpd

[root@localhost ~]# ps aux | grep httpd
root       2297  0.1  0.5 224084  5036 ?        S<s  03:09   0:00 /usr/sbin/httpd -DFOREGROUND
apache     2298  0.0  0.2 224084  2936 ?        S<   03:09   0:00 /usr/sbin/httpd -DFOREGROUND
apache     2299  0.0  0.2 224084  2936 ?        S<   03:09   0:00 /usr/sbin/httpd -DFOREGROUND
apache     2300  0.0  0.2 224084  2936 ?        S<   03:09   0:00 /usr/sbin/httpd -DFOREGROUND
apache     2301  0.0  0.2 224084  2936 ?        S<   03:09   0:00 /usr/sbin/httpd -DFOREGROUND
apache     2302  0.0  0.2 224084  2936 ?        S<   03:09   0:00 /usr/sbin/httpd -DFOREGROUND
root       2305  0.0  0.0 112824   980 pts/0    R+   03:10   0:00 grep --color=auto httpd

3.4 ps -ef | grep httpd

[root@localhost ~]# ps -ef | grep httpd
root       2297      1  0 03:09 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache     2298   2297  0 03:09 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache     2299   2297  0 03:09 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache     2300   2297  0 03:09 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache     2301   2297  0 03:09 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache     2302   2297  0 03:09 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
root       2309   2209  0 03:17 pts/0    00:00:00 grep --color=auto httpd

四、查看端口

4.1netstat -lntp | grep 进程名

[root@localhost ~]# netstat -lnpt | grep httpd
tcp6       0      0 :::80                   :::*                    LISTEN      2297/httpd   

4.2 ss -lntp | grep 进程名

[root@localhost ~]# ss -lntp | grep httpd
LISTEN     0      128       [::]:80                    [::]:*                   users:(("httpd",pid=2302,fd=4),("httpd",pid=2301,fd=4),("httpd",pid=2300,fd=4),("httpd",pid=2299,fd=4),("httpd",pid=2298,fd=4),("httpd",pid=2297,fd=4))

4.3 losf 查看文件被哪个进程占用

进程状态:

+:表示在前台运行的进程

S+:休眠进程

T+:暂停,挂起进程

s:父进程

五、进程控制

1.kill

kill

-1 hup 重新加载进程或者配置文件,pid不变

-9  kill 强制杀死

-15 TERM 正常杀死

-18 CONT 激活进程

-19 STOP 挂起进程

[root@localhost ~]# systemctl start vsftpd  
[root@localhost ~]# ps aux | grep vsftpd    #查看进程pid
root      46767  0.0  0.0  53288   576 ?        Ss   13:27   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

[root@localhost ~]# kill -1 46767           #重新加载配置文件
[root@localhost ~]# ps aux |grep vsftpd     #查看pid没有改变
root      46767  0.0  0.0  53288   740 ?        Ss   13:27   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf  

[root@localhost ~]# kill 46767     #正常杀死进程,信号为15可以默认不写
[root@localhost ~]# ps aux |grep vsftpd #查看进程已经没有了
root      50896  0.0  0.0 112824   980 pts/0    S+   13:29   0:00 grep --color=auto vsftpd
[root@localhost ~]# systemctl start vsftpd #重启进程
[root@localhost ~]# ps aux |grep vsftpd    #查看进程pid,发现pid改变
root      51610  0.0  0.0  53288   576 ?        Ss   13:29   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root      51978  0.0  0.0 112824   980 pts/0    S+   13:29   0:00 grep --color=auto vsftpd
[root@localhost ~]# pkill -9 vsftpd  #强制杀死,一般用于不能正常停止的情况
[root@localhost ~]# ps -aux |grep vsftpd
root      54655  0.0  0.0 112824   980 pts/0    R+   13:31   0:00 grep --color=auto vsftpd

2.pkill

    使用pkill时可以指定进程的名字

[root@localhost ~]# pkill -9 vsftpd

六.作业控制

     作业控制是指控制正在运行的进程的行为,比如,用户可以挂起一个进程或者放到后台去运行,等一会在执行该进程。

[root@localhost ~]# sleep 7000 &   # &让命令或者程序在后台运行
[1] 17332
[root@localhost ~]# sleep 8000     # ctrl+z 把程序放到后台(程序会在后台暂停)
^Z
[2]+  已停止               sleep 8000
[root@localhost ~]# jobs           #查看后台的工作号
[1]-  运行中               sleep 7000 &
[2]+  已停止               sleep 8000
[root@localhost ~]# bg  %2        # 让暂停的程序在后台运行,%是用来修饰job number ,2就是job number
[2]+ sleep 8000 &
[root@localhost ~]# jobs
[1]-  运行中               sleep 7000 &
[2]+  运行中               sleep 8000 &
[root@localhost ~]#  fg %1       #将后台运行的程序调到前台
[root@localhost ~]# jobs    
[1]+  已停止               sleep 7000
[2]-  运行中               sleep 8000 &
[root@localhost ~]# kill -9 %1    #通过kill杀死进程
[1]+  已停止               sleep 7000
[root@localhost ~]# jobs
[1]+  已杀死               sleep 7000
[2]-  运行中               sleep 8000 &
[root@localhost ~]# jobs          #再次查看就没有了
[2]+  运行中               sleep 8000 &

七、常用命令

1、查看当前cpu负载

uptime

[root@localhost ~]# uptime
 13:41:50 up 17:56,  3 users,  load average: 0.20, 0.24, 0.24

2、查看内存使用

[root@localhost ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           2827        2456          94           1         276         202
Swap:          2047        1296         751

-m:单位M

3.查看系统版本和内核

[root@localhost ~]# cat /etc/redhat-release #查看版本
CentOS Linux release 7.9.2009 (Core)
[root@localhost ~]# uname -a  #查看正在运行的内核版本
Linux localhost.localdomain 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost ~]# uname -r  #查看内核版本
3.10.0-1160.el7.x86_64

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值