1、在linux中,每个执行的程序都成为一个进程,每一个进程都分配一个ID号(pid,进程号);
2、每个进程都可能以两种方式存在。前台与后台,所谓前台进程就是用户目前在屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
3、一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才结束;
4、显示系统执行的进程
4.1、命令:ps
USER: 进程拥有者
PID: pid
%CPU: 占用的 CPU 使用率
%MEM: 占用的记忆体使用率(物理内存)
VSZ: 占用的虚拟记忆体大小(虚拟内存)
RSS: 占用的记忆体大小
TTY: 终端的次要装置号码 (minor device number of tty)
STAT: 该行程的状态:
D: 无法中断的休眠状态 (通常 IO 的进程)
R: 正在执行中
S: 静止状态
T: 暂停执行
Z: 不存在但暂时无法消除
W: 没有足够的记忆体分页可分配
<: 高优先序的行程
N: 低优先序的行程
L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
START: 行程开始时间
TIME: 执行的时间
COMMAND:所执行的指令
4.2、查找特定进程
ps -aux | grep sshd
5、应用实例
要求:以全格式显示当前所有进程,查看进程的父进程。
ps -ef 是以全格式显示当前所有的进程;
-e 显示所有进程。 -f 全格式
ps -ef | grep xxx
PPID:父进程的pid
查看sshd的父进程:ps -ef | grep sshd 父进程的PID是1,由上图可知PID为1的具体进程;
6、终止进程kill和killall
介绍:若是某个进程执行一半需要停止时,或是已经消了很大的系统资源时,此时可以考虑停止该进程。使用kill命令来完成此项任务。
基本语法:kill [选项] 进程号 (功能描述:通过进程号杀死进程)
killall 进程名称 (功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)
常用选项:
-9 :表示强迫进程立即停止
最佳实践:
案例1:踢掉某个非法登陆用户
kill 用户登陆的进程号(如tom用户登陆的进程号是85645,执行命令:kill 85645)
案例2:终止远程登陆服务sshd,在适当时候再次重启sshd服务;
查看sshd对应的进程号:ps -aux|grep sshd
杀死sshd的进程:kill 进程号,杀死后sshd无法登陆;
重启sshd服务:systemctl start sshd/service start sshd
重启后ssh可以远程登陆:
案例3:终止多个gedit
案例4:强制杀掉一个终端;
VM启动多个终端
kill -9 进程号,仅有一个终端还在运行;
7、查看进程树pstree
基本语法:
pstree 【选项】,可以更加直观的查看进程信息;
常用选项:
-p 显示进程的PID;
-u 显示进程所属的用户;
应用实例:
案例1:请用树状的形式显示进程的PID;
pstree -p
案例2:请用树状的形式显示进程的用户ID;
pstree -u