一.基本介绍
1.在 LINUX 中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个 ID 号
2.每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程
3.每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行
4.一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束
二.查看进程
查看进行使用的指令是 ps ,一般来说使用的参数是 ps -aux
,ps -ef
,正常与grep
连用
查看进程树
pstree [选项]
-p 查看进程pid
-u 查看进程所属用户
三.结束进程
kill 进程号 #停止进程
kill-9 进程号 #强迫进程立即停止
killall 进程名称 #停止所有相同的进程名称
四.ps指令详解
BSD风格 详解
user 用户名称
pid 进程号
%cpu 进程占用cpu百分比
%%mem 进程占用物理内存的百分比
vsz 进程占用虚拟内存的大小
rss 进程占用物理内存的大小
tty 终端名称(后台则为?)
stat 进程状态
S:睡眠
s:会话的先导进程
N:进程拥有比普通优先级更低的优先级
R:正在运行
D:短期等待
Z:僵尸进程
T:被跟踪或者被停止
start 进程启动时间
time 使用cpu总时间
command 启动进程所用的命令和参数,如果过长会被截断显示
system V 风格详解
uid 用户id
pid 进程id
ppid 父进程id
C 进程占cpu百分比
stime 进程启动时间
tty 终端名称(后台则为?)
cmd 启动进程所用的命令和参数
五.动态监控进程
top与 ps 命令很相似。它们都用来显示正在执行的进程。Top 与 ps 最大的不同之处,在于top 在执行一段时间可以更新正在运行的的进程
top [选项]
-d 指定每隔几秒更新,默认3秒
-i 不显示任何闲置或者僵尸进程
-p id号 监听指定进程
交互操作:
P 以cpu使用率排序,默认就这个
M 以内存使用率排序
N 以pid排序
u 监听具体用户
k 终止指定进程
q 退出top
六.例子
1.踢掉某个非法登录用户
ps -ef | grep ssh
kill 非法登录用户的进程id
2.终止远程登录服务
kill sshd的进程id
sshd, 在适当时候再次重启sshd 服务
service sshd start
3.终止多个 gedit 编辑器 【killall, 通过进程名称来终止进程】
killall gedit
4.强制杀掉一个终端
查看终端id
ps -ef | grep bash
kill -9 终端id # -9为强杀
七.查看进程树 pstree
pstree [选项]
-p 查看进程pid
-u 查看进程所属用户