5.11 进程管理
5.11.1 ps
ps:查看当前系统进程
ps aux | grep xxx
:查看系统中所有的进程
ps -ef | grep xxx
:可以查看子父进程之间的关系
选项 | 功能 |
---|---|
a | 列出带有终端的所有用户进程 |
x | 列出当前用户的所有进程,包括没有终端的 |
u | 面向用户友好的显示风格 |
-e | 列出所有进程 |
-u | 列出某个用户关联的所有进程 |
-f | 显示完成格式的进程列表 |
实例:
ps -ef
UID PID PPID C STIME TTY TIME CMD
# 所属用户 进程号 父进程号 cpu执行优先级 进程启动时间 完整的终端名称 CPU时间 启动进程的命令和参数
ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
# 所属用户 进程号 cpu占用率 内存占用率 虚拟内存占用 物理内存占用 图形/终端 进程状态 开始时间 cpu时间 产生进程的命令名
经验技巧:
如果想看进程的cpu占用率,就使用ps aux
如果想看进程的父进程,就使用ps -ef
5.11.2 kill
kill:杀死进程
killall:杀死所有相关进程
kill [选项] 进程号
:通过进程号杀死进程
killall 进程名称
:通过进程名称杀死所有相关进程(谨慎使用)
选项 | 功能 |
---|---|
-9 | 强制杀死正在执行的进程 |
5.11.3 pstree
pstree:进程树,查看进程间父子关系
pstree [选项]
选项 | 功能 |
---|---|
-p | 进程树每个进程都包含进程号 |
-u | 进程树每个进程都包含所属用户 |
5.11.4 top
top:实时监控系统进程状态
top [选项]
选项 | 功能 |
---|---|
-d | 指定top命令每隔几秒更新一次。默认是3秒 |
-i | 使top不显示任何的闲置或者僵尸进程 |
-p | 通过指定监控进程ID来仅仅监控某个进程的状态 |
操作说明:
操作 | 功能 |
---|---|
P(shift+p) | 以cpu占用率进行排序,默认就是此项 |
M(shift+m) | 以内存使用率进行排序 |
N(shift+n) | 以PID进行排序 |
u | 筛选指定user的进程 |
k | 杀死进程 |
q | 退出top |
5.12 网络状态和端口监控类
5.12.1 ifconfig
ifconfig:查看网络配置
5.12.2 ping
ping:查看网络连接情况
5.12.3netstat
netstat:显示网络状态和端口占用信息
net -anp | grep 进程号
:查看该进程网络信息
netstat -nlp | grep 端口号
:查看网络端口号占用情况
选项 | 功能 |
---|---|
-a | 显示所有正在监听(listen)和未监听的套接字(socket) |
-n | 拒绝显示别名,能显示数字的全部转化为数字 |
-l | 仅列出在监听的服务状态 |
-p | 表示显示哪个进程正在调用 |
5.13 系统定时任务
5.13.1 crontab
crontab:系统定时任务
systemctl status crond
:查看守护进程crond是否启动,只有crond启动了才能执行crontab命令
crontab [选项]
:制定定时任务
选项 | 功能 |
---|---|
-e | 编辑crontab定时任务 |
-l | 查询crontab任务 |
-r | 删除当前用户所有的crontab任务 |
参数格式:* * * * * [执行的指令]
参数说明:
项目 | 含义 | 范围 |
---|---|---|
第一个* | 一天当中的第几分钟 | 0-59 |
第二个* | 一天当中的第几个小时 | 0-23 |
第三个* | 一月当中的第几天 | 1-31 |
第四个* | 一年当中的第几个月 | 1-12 |
第五个* | 一周当中的星期几 | 0-7(0和7都代表星期日) |
实例:
# 每天的22:45分执行一个命令
45 22 * * * 命令
# 每天的8:15,10:15,12:15执行命令
15 8,10,12 * * * 命令
# 周一到周六的8:00执行命令
0 8 * * 1-6 命令
# 每隔10分钟执行一次
*/10 * * * * 命令