进程的基本介绍
- 在计算机中运行起来的程序就是进程,进程与程序区别的关键就在于:进程是动态的,而程序是静态的。
- 前台进程:执行过程中占用屏幕。后台进程:其执行过程在屏幕上没有显示,但却仍然在执行的过程中。
- 一般来说,系统的服务(防火墙、网络服务等等)都是以后台进程的方式运行,指导运行到关机才结束。
显示进程
ps [选项] ,不加选项的ps命令 也显示进程 只是内容少。
选项:
-a :显示当前终端的所有进程信息
-u :以用户的格式显示进程信息
-x :显示后天进程运行的参数
上面的选项 可以相互结合使用。
例:ps -aux
结果详解:
USER | 进程执行用户 |
---|---|
PID | 进程号 |
%CPU | 当前进程占用cpu的百分比 |
%MEN | 当前进程占用物理内存百分比 |
VSZ | 当前进程占用计算机的虚拟内存 |
TTY | 终端名称缩写 |
STAT | 当前进程的运行状态,S:睡眠,s:表示该进程是会话的先导进程,N:表示进程拥有比普通优先级更低的优先级,R:正在运行,D:短期等待,Z:僵死进程,T:被跟踪或者被停止等等 |
START | 进程执行的开始时间 |
TIME | 占用CPU的时间 |
COMMAND | 启动该进程的指令,过长的话系统会截断显示 |
例:
过滤显示进程 :ps -aux | grep xxx(xxx代表进程名称)
ps -aux | grep sshd :过滤显示远程登陆服务进程
父子进程:一个程序创建了另一个进程,前者为父进程,后者为子进程。
查看sshd的父进程
ps -ef 以全格式显示当前的所有进程。
-e:显示所有进程,-f:全格式
运行结果:
结果分析:
UID | 用户ID |
---|---|
PID | 进程ID |
PPID | 父进程ID |
C | CPU计算的优先级,数值越大表明进程是CPU密集型运算,执行的优先级会降低。数值越小,表明进程是I/O密集型运算,执行优先级会提高 |
STIME | 进程启动的时间 |
TTY | 完整的终端名称 |
TIME | 进程占用CPU的时间 |
CMD | 启动进程所用的命令和参数 |
终止进程:kill和killall
如果进程执行到一半需要停止时,或者已经占用了很大的资源时,可以考虑停止该进程。使用kill命令完成此任务。
语法:
kill [选项] 进程号
killall 进程名称 (杀死此进程和其子进程,支持通配符,系统负载过大而变慢时很有用。)
选项:-9 表示强迫进程立即停止
案例1:踢掉非法登陆的tom用户
案例2:终止远程登录服务,并重启
案例3:终止多个进程
案例4:强制杀死一个进程
kill -9 进程id
查看进程树:pstree
案例1:以树状的形式,显示进程的pid
pstree -p
案例2:以树状的形式,显示进程的用户名
pstree -u