进程管理
进程管理基础
- 在 Linux 中,每个执行的程序/代码都称为一个进程。每个进程都分配一个 ID 号
- 每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例如 www 服务器。
- 每个进程都可能以两种方式存在。前台和后台。
- 前台进程:用户目前的屏幕上可以进行操作的。
- 后台进程:实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
- 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才结束。
查看进程
ps 选项
显示系统执行的进程
- ps -a:显示当前终端的所有进程信息。
- ps -u:以用户的格式显示进程信息。
- ps -x:显示后台进程运行的参数。
- ps -axu | grep xxx:过滤得到 xxx 的信息。
- ps -ef:以全格式显示当前所有的进程,查看进程的父进程。
- -e:显示所有进程。
- -f:全格式。
ps -aux | more 翻页查看

字段 | 说明 |
---|---|
USER | 用户说明 |
PID | 进程识别号 |
%CPU | 进程占用 cpu 百分比 |
%MEM | 进程占用物理内存百分比 |
VSZ | 进程占用虚拟内存大小(KB) |
RSS | 进程占用物理内存大小(KB) |
TTY | 终端机号 |
STAT | 进程状态,S 睡眠,s 代表是会话的先导进程,N 代表进程拥有比普通进程更高的优先级,R 正在运行,D 短期等待,Z 僵死进程,T 被跟踪或被停止 |
STARTED | 进程启动的时间 |
TIME | 此进程所消耗的 CPU 时间 |
COMMAND | 正在执行的命令或进程名 |
ps -aux | grep "xxx" 过滤查看
ps -ef 全格式显示所有进程,可以查看父进程
BSD 展示风格
字段 | 说明 |
---|---|
UID | 用户 id |
PID | 进程 id |
PPID | 父进程 |
C | CPU 用于执行优先级的因子,数值越大,表明 cpu 密集型运算,执行优先级会降低,数值越小,表明是 I/O 密集运算,执行优先级会提高 |
STIME | 进程启动时间 |
TTY | 终端机号 |
TIME | 此进程所消耗的 CPU 时间 |
CMD | 启动所用的命令和参数 |
ps -ef | grep xxx
终止进程
kill 选项 pid
:杀死某个进程。killall 进程名称
:杀死进程及其子进程。kill -9 pid
:强制关闭 pid 进程。
显示进程树
查看进程树:pstree [选项]
- -p:显示进程的 PID
- -u:显示进程的所属用户
服务管理
服务(Service)本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysql,sshd 防火墙等),因此我们又称为守护进程。
service 管理指令
service 管理指令:service 服务名 [start | stop | restart | reload | status] 在 CentOS7.0 之后,不再使用 service,而是 systemctl
- 查看防火墙情况:
- service iptables status
- systemctl status firewalld(7.0 之后的版本)
systemctl
管理服务指令
ls -l /usr/lib/systemd/system/ | more
:显示 systemctl 管理的服务名称。systemctl list-unit-files | grep firewalld
:查看防火墙开启还是关闭。关于防火墙的管理指令
目的,打开防火墙的同时允许防火墙通过某些端口。
服务的运行级别(runlevel)
- 查看或修改默认级别:vim /etc/inittab
- 每个服务对应的每个运行级别都可以设置
systemctl get-default
:默认运行级别
chkconfig 指令
chkconfig:可以给每个服务的各个运行级别设置自启动/关闭
查看 xxx 服务:chkconfig –list | grep xxx
- 查看服务的状态:chkconfig 服务名 --list
- 给服务的运行级别设置自启动:chkconfig –level 5 服务名 on/off
- 要所有运行级别关闭或开启:chkconfig 服务名 on/off
- chkconfig 重新设置后需要重新启动才能生效
动态监控进程
top 与 ps 相似,都是用来显示正在执行的进程,top 的不同之处在于 top 执行一段时间可以更新正在运行的进程
top [选项]
d 秒数:指定 top 命令每隔几秒更新。默认是 3 秒。
i:使 top 不显示任何闲置或者僵死进程。
p:通过指定监控进程 ID 来仅仅监控某个进程的状态。
交互操作说明:
操作 | 功能 |
---|---|
P | 以 CPU 使用率排序,默认就是此项 |
M | 以内存的使用率排序 |
N | 以 PID 排序 |
q | 退出 top |
top
:主要查看 cpu 和内存 men 占用量,以及是否有僵尸进程 zombie。top
指令的交互
监控网络状态
netstat [选项]
-an
:按一定顺序排列输出-p
:显示哪个进程在调用-t
: 显示 TCP 连接信息-u
: 显示 UDP 连接信息-l
: 仅显示监听状态的端口-n
: 使用数字格式显示端口号,而不是服务名grep
: 端口号: 使用 grep 命令过滤出指定的端口号信息
应用案例:
查看端口号是否被占用:
netstat -tuln | grep 80
查看 sshd 的服务的信息:
netstat -anp | grep sshd
查看所有的网络服务:
netstat -anp | more