linux进程管理
1、进程阐述
计算机中,一个正在执行的程序或命令,被叫做进程
启动之后一直存在、常驻内存的进程,一般被称作服务
2、进程命令
ps :process status
2.1 基本语法
ps aux | grep xxx (功能描述: 查看系统中所有进程)
ps -ef| grep xxx (功能描述: 查看系统中所有进程 ,并且可以查看子父进程之间的关系)
2.2 选项说明
a 列出带有终端的所有用户的进程
x 列出当前用户的所有进程 包括没有终端的进程
u 面向用户显示友好的风格
-e 列出所有进程
-u 列出某个用户关联的所有进程
-f 显示完整格式的进程列表
2.3 功能说明
ps aux
user 哪个用户调用该进程
PID 进程编号
%CPU 当前用户进程占用CPU的时间, 占用越高 进程越耗费资源
%MEM 当前进程占用内存空间的百分比 占用越高 进程越耗费资源
VSZ 当前进程占用的虚拟内存 单位KB
RSS 当前进程占用的实际物理内存 单位KB
TTY 当前的进程是使用哪个终端(? 表示 该进程是后台运行的程序,没有终端运行),tty1是图形化终端,tty2-tty6是本地的字符界面终端。pts/-0255 代表虚拟终端(通过xshell 连接远程登录的 就是虚拟终端)
STAT: 进程状态。常见的状态有 R: 运行状态、S:睡眠状态、T:暂停状态、Z:僵尸状态、s: 包含子进程、l:多线程、+:前台显示
START: 该进程的启动时间
TIME: 该进程占用CPU的运算时间,注意不是系统时间
COMMAD: 产生此进程的命令名
ps ef
UID 用户id
PID 进程ID
PPID 父进程ID
C 用于执行计算的优先级的因子。数值越大,表面进程是CPU密集型运算
如果想查看进程的CPU占有率和内存使用率 用ps aux
如果查看进程PID 则有 ps ef
2.4 查看CPU和内存排序
-
倒序排序
ps aux --sort=-%cpu -
正常排序
ps aux --sort=%cpu -
内存到序排序
ps aux --sort=-%rss -
使用 ps 命令:ps 命令可以用来查看进程的状态和资源占用情况。使用以下命令可以查看当前正在运行的进程的 CPU 使用率:
ps -e -o pid,user,%cpu --sort=-%cpu
这个命令会列出所有进程的 PID、用户名和 CPU 使用率,并按照 CPU 使用率进行降序排序。通过查看进程列表,你可以确定哪些进程占用了大量的 CPU。
-e: 选择所有进程。
-o: 指定输出格式,这里指定了 PID、用户名和 CPU 使用率。
–sort=-%cpu: 按照 CPU 使用率进行排序,- 表示降序排序。如果你只对某个特定用户的进程感兴趣,可以在命令中添加一个 grep 过滤条件,例如:
ps -eo pid,user,%cpu --sort=-%cpu | grep username
2.5 终止进程
kill [选项] 进程号 (通过进程号杀死进程)
kill -9 进程号 表示强迫进程立即终止
killall 进程名称 通过进程名称杀死进程
通过进程号杀死进程
kill -9 5102
通过进程名杀死浏览器进程
killall firefox
2.6 进程树
pstree 查看父进程和各个子进程之间的关系
pstree -p 按照id显示进程
pstree -u 按照用户名显示进程
2.7 top 实时监控系统状态
top [选项]
2.7.1 结果参数解读
PR 当前任务的优先级, 值越高 表示当前任务优先级别越高
NI 表示用户进程调度时的nice值 值越高表示越友好,优先级越低
VIRT 虚拟内存占用的大小
RES 物理内存 实际内存占用的大小
SHR 共享内存
S 程序运行状态
%CPU 使用CPU时间的比例
%MEM 使用内存的比例
TIME+ 程序当前已经占用CPU的运行时间
2.7.2 选项说明
top -d 秒数 指定top命令每隔几秒更新 默认是3秒
top -i 使top不显示任何显示或者僵死进程
top -p 通过指定监控进程ID 来仅仅监控某个进程的状态
2.8 查看网络状态
netstat 显示网络状态和端口占用信息
-
基本语法
netstat -anp | grep 进程号 (功能描述: 查看该进程网络信息)
netstat -nlp | grep 端口号 (功能描述: 查看网络端口号占用情况) -
选项说明
-a 显示所有正在监听 和 未监听的套接字
-n 拒绝显示别名 能显示数字的全部显示未数字
-l 仅列出在监听的服务状态
-p 表示显示哪个进程在调用