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
USER          
PID 进程ID
%CPU cpu的占用率
%MEM 内存的占用率
VSZ 进程占用虚拟内存的大小
RSS 占用物理内存的大小
TTY ?表示没有占用终端
STAT R 运行 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
c cpu占用率
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=僵尸进程
%CPU CPU的占用百分比
%MEM 物理内存百分比
TIME+ 进程使用的CPU时间总计
COMMAND 命令行

P 按cpu占用百分比排列

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

2.2.2htoplinux 进程 top ps命令详解_第1张图片

三、查看单个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

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

你可能感兴趣的:(linux,java,jvm)