文章目录
- Linux系统的进程管理
- 1.查看进程
- 2.父进程
- 3.终止进程
- 4.进程树
Linux系统的进程管理
在LINUX中,每个执行的程序都称为一个进程。每一个进程都分配一个ID号(pid,进程号)
每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束
1.查看进程
指令 ps
是用来查看目前系统中,有哪些正在执行,以及它们执行的状况。可以不加任何参数
ps 显示的信息:
字段 | 说明 |
---|---|
PID | 进程识别号 |
TTY | 终端机号 |
TIME | 此进程所消 CPU 时间 |
CMD | 正在执行的命令或进程名 |
ps -a
: 显示当前终端的所有进程信息
ps -u
: 以用户的格式显示进程信息
ps -x
: 显示后台进程运行的参数
ps -e
:显示所有进程
ps -f
:显示全格式
输入:ps -aux | more
ps详解指令 : ps -aux | grep xxx
,比如看看有没有sshd服务指令,输入ps -aux | grep sshd
说明:
USER: 用户名称
PID: 进程号
%CPU: 进程占用CPU的百分比
%MEM: 进程占用物理内存的百分比
VSZ: (Virtual Memory Size),进程占用的虚拟内存大小(单位:KB)
RSS:(Resident Set Size),物理内存大小(单位:KB)
TT: 终端名称(terminal type)缩写
STAT: 进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-死进程,T-被跟踪或者被停止等等
STARTED: 进程的启动时间
TIME: CPU时间,即进程使用CPU的总时间
COMMAND: 启动进程所用的命令和参数,如果过长会被截断显示
2.父进程
应用实例要求: 以全格式显示当前所有的进程,查看进程的父进程
ps -ef
是以全格式显示当前所有的进程
-e
显示所有进程
-f
全格式
ps -ef grep xxx
过滤进程
参数说明:
UID: 用户ID
PID: 进程ID
PPID:父进程ID
C:CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低数值越小,表明进程是I/O密集型运算,执行优先级会提高
STIME: 进程启动的时间
TTY: 完整的终端名称
TIME: CPU时间
CMD: 启动进程所用的命令和参数
3.终止进程
若是某个进程执行一半需要停止时,或是已消了很大的系统资源时,此时可以考虑停止该进程。使用kill命令来完成此项任务。
kll [选项] [进程号]
: 通过进程号杀死/终止进程
killall [进程名称]
: 功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用
常用选项
-9:表示强迫进程立即停止
Eg:
- 踢掉某个非法登录用户
kill 进程号
,比如kill 11421
- 终止远程登录服务sshd,在适当时候再次重启sshd服务
kill sshd对应的进程号
/bin/systemctl start sshd.service
- 终止多个gedit,演示
killall gedit
- 强制杀掉一个终端
kill -9 bash对应的进程号
4.进程树
基本语法: pstree [选项]
,可以更加直观的来看进程信息
常用选项
-p: 显示进程的PID
-u: 显示进程的所属用户
- 树状的形式显示进程的pid
- 树状的形式进程的用户id