Linux 进程管理
目录
文章目录
- [Linux 进程管理](#Linux 进程管理)
- 一.进程
-
- 1.显示当前进程状态(ps)
-
- 进程树(pstree)
- 1.1实时显示进程信息(top)
- 顶部概览信息:
- [CPU 状态:](#CPU 状态:)
- 内存状态:
- 进程信息表头:
- 进程列表:
- 1.2(htop)
- 2.终止进程(kill)
- 3.后台和前台进程控制(bg/fg)
- [4. 跟踪系统调用和信号(strace)](#4. 跟踪系统调用和信号(strace))
- [5. 查看内存使用情况(free)](#5. 查看内存使用情况(free))
- 6.服务管理(service)
- 二.动态监控
- 三.网络监控
一.进程
1.显示当前进程状态(ps)
显示所有运行中的进程及其详细信息
ps aux
显示所有包含nginx的进程
ps -ef | grep nginx
进程树(pstree)
显示进程树,并且每个进程旁边显示其进程ID(PID)
pstree -p
显示进程树,包括进程的完整命令行和父进程ID
pstree -pu
1.1实时显示进程信息(top)
top
```
下面是 top
命令输出中各项参数及其作用:
顶部概览信息:
- top - 20:05:04 :
top
命令的启动时间。 - up 1:46:系统运行时间,这里是1小时46分钟。
- 2 users:当前登录到系统的用户数量。
- load average: 0.44, 0.28, 0.17 :系统负载平均值,显示过去1分钟、5分钟和15分钟的平均负载。数值是正在使用CPU的进程数,高于此数值的CPU核心数通常表示高负载。(一般三个数加起来不超过0.7)
CPU 状态:
- %Cpu(s) :
- us:用户空间占用CPU的百分比(1.5%)。
- sy:系统空间占用CPU的百分比(2.5%)。
- ni:优先级级较高的用户进程占用CPU的百分比(0.0%)。
- id:CPU空闲的百分比(95.7%)。
- wa:等待I/O操作的CPU时间百分比(0.0%)。
- hi:处理硬件中断的CPU时间百分比(0.0%)。
- si:处理软件中断的CPU时间百分比(0.2%)。
- st:被虚拟机偷取的时间百分比(0.0%)。
内存状态:
-
MiB Mem:
- total:物理内存总量(3870.4 MiB)。
- free:空闲内存量(1878.6 MiB)。
- used:已使用内存量(1221.7 MiB)。
- buff/cache:用作缓冲和缓存的内存量(1043.3 MiB)。
-
MiB Swap:
- total:交换空间总量(3869.0 MiB)。
- free:空闲交换空间量(3869.0 MiB)。
- used:已使用交换空间量(0.0 MiB)。
-
avail Mem:可用内存量(2648.6 MiB),这是系统可用于启动新应用程序的估计内存量,包括一部分缓存内存。
进程信息表头:
- 进程号(PID):进程的唯一标识符。
- USER:进程所有者的用户名。
- PR:优先级(越小越优先执行)。
- NI:nice值(影响进程优先级,越小越优先)。
- VIRT:虚拟内存大小,进程使用的虚拟内存总量。
- RES:常驻内存大小,进程实际占用的物理内存量。
- SHR:共享内存大小,进程与其他进程共享的内存量。
- %CPU:自上次更新以来,进程占用CPU的百分比。
- %MEM:自上次更新以来,进程占用内存的百分比。
- TIME+:进程占用CPU的总时间。
- COMMAND:启动进程的命令名称。
进程列表:
- 2593 admire :用户
admire
的PID为2593的进程。 - 20 0:优先级和nice值。
- 4322184 VIRT:虚拟内存。
- 270420 RES:常驻内存。
- 131508 SHR:共享内存。
- S :进程状态(S:睡眠,R:运行,T:停止,Z:僵尸)。定期清除(占用内存)
- 11.6 %CPU:CPU使用率。
- 6.8 %MEM:内存使用率。
- 0:57.56 TIME+:CPU占用总时间。
- gnome-session COMMAND:进程名称。
1.2(htop)
以彩色界面显示进程信息
htop
设置刷新间隔为5秒
htop -d 5
2.终止进程(kill)
强制 杀死进程ID为PID的进程
kill -9 PID
杀死所有名为nginx的进程
killall nginx
2.1通过名称杀死进程(pkill)
杀死所有与nginx相关的进程
pkill -f nginx
2.2根据名称查找进程ID(pgrep)
3.后台和前台进程控制(bg/fg)
列出所有名为nginx的进程的PID
pgrep nginx
3.1显示后台作业列表(jobs)
列出当前终端的所有后台作业
jobs
4. 跟踪系统调用和信号(strace)
跟踪PID进程的系统调用
strace -p PID
5. 查看内存使用情况(free)
以MB为单位显示内存使用情况
free -m
6.服务管理(service)
6.1查看当前网络服务状态
systemctl status NetworkManager.service
服务状态标志(如 ●):表示服务的总体状态。不同符号有不同的含义,例如:
●:服务已激活(active)。
-:服务未激活(inactive)。
?:服务状态未知。
服务名称和服务描述:显示服务的名称和简短描述。
Loaded:显示服务单元文件是否已加载。
loaded:已加载。
(/lib/systemd/system/NetworkManager.service; ...:服务单元文件的路径和加载时的状态。
Active:显示服务是否正在运行。
active (running):服务正在运行。
since:服务开始运行的时间。
Main PID:服务的主进程ID。
Tasks:服务创建的任务数。
Memory 和 CPU:服务使用的内存和CPU时间。
CGroup:服务所属的控制组(cgroup)信息。
日志条目:服务的日志条目,显示时间、主机名、进程ID、日志级别和消息
6.2启动,停止,重启
systemctl start/stop/restart
二.动态监控
网络监控命令
-
显示网络连接和端口使用情况(netstat)
netstat -anp | grep :80
:查看80端口的连接。
-
显示套接字信息(ss)
ss -tulnp
:显示TCP/UDP端口使用。
-
实时显示网络带宽使用情况(iftop)
iftop
:显示网络接口带宽。
以下是整理好的Linux网络监控命令笔记:
三.网络监控
网络接口配置
- ifconfig
ifconfig
:显示所有网络接口配置。
- ip addr show
ip addr show
:显示所有网络接口配置。
网络连通性测试
- ping
ping google.com
:测试到google.com的连通性。
数据包路径追踪
- traceroute
traceroute google.com
:追踪到google.com的数据包路径。
- tracepath
tracepath google.com
:追踪到google.com的数据包路径。
网络流量捕获和分析
- tcpdump
tcpdump -i eth0
:捕获eth0接口流量。tcpdump -n -v -s 0 -c 100 port 80
:捕获端口80的流量。
- wireshark
- 使用Wireshark捕获和分析网络流量。
DNS查询
DNS 是域名系统(Domain Name System)的缩写,它是一个分层的、分布式的命名系统,用于将易于人类记忆的域名(如 www.example.com)转换为计算机用于网络通信的 IP 地址(如 192.168.1.1)
- dig
dig google.com
:查询DNS记录。