「这是我参与11月更文挑战的第13天,活动详情查看:2021最后一次更文挑战」。
0. 前言
- 在 Linux 中,每个执行的程序(磁盘中)都称为一个进程(内存中);每一个进程都会分配一个 ID 号(pid)
- 每个进程都可能以两种方式存在:前台、后台!
- 前台:用户目前屏幕上可以进行操作的
- 后台:实际在运行,但在屏幕上不可视的进程,通常使用后台方式执行
- ⭐一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才结束。
进程管理相关指令:
# ps -aux 查看所有的进程
$ ps -aux | grep mysql # mysql是过滤信息
$ ps -ef | grep mysql # 查看父进程的信息
$ kill [-9] <pid>
$ pstree -pu
-p:显示父进程PID
-u:显示用户组
1. ps
ps命令是用来查看目前系统中,有哪些正在执行,以及它们的执行状况,可不加参数- 最常用命令:
ps -auxps -a: 显示当前终端所有进程信息ps -u: 以用户的格式显示进程信息ps -x: 显示后台进程运行的参数- 例:
ps -aux | grep sshd过滤跟 sshd 相关的进程
⭐相关参数注释:
⭐若要查看进程对应的父进程,则需要搭配参数 -ef 使用:
- 父子进程 ppid
ps -ef | more: 以全格式显示当前所有进程,查看进程的父进程
- 远程连接的进程:
ps -ef | grep sshd - 本地终端打开的进程:
ps -ef | grep bash
2. kill
- 终止进程 kill 命令
- 语法
- ①
kill [选项] <PID>- 常用选项 :
-9强迫进程立即停止
- 常用选项 :
- ②
kill <进程名称>,支持通配符,这在系统因负载过大而变得很慢时很有用。
- ①
- 最佳实践
- 案例1:踢掉某个非法登录用户 =>
kill 非法用户对应的PID - 案例2:终止远程登录服务 sshd,在适当时候再次重启 sshd 服务 ==>
kill sshd对应的进程号/bin/systemctl start sshd.service: 重启 sshd 服务
- 案例3:终止多个
gedit==>killall gedit - 案例4:强制杀掉一个终端 ==>
ps -aux | grep bashkill -9 <PID>
- 案例1:踢掉某个非法登录用户 =>
3. pstree
pstree [选项]: 更加直观地查看进程信息-p: 显示进程的 PID-u: 显示进程的所属用户
pstree -upstree -p
希望本文对你有所帮助🧠
欢迎在评论区留下你的看法🌊,我们一起讨论与分享🔥