一、进程管理
(一)进程查看与管理
1、常用的进程管理命令
ps aux 查看进程
pstree 树状查看进程状态
top 动态查看进程状态
2、进程的管理
ctrl + Z 将前台进程调入后台并暂停
jobs 查看后台进程
fg # 将后台第#个进程在前台运行
& 直接将前台进程放在后台运行
kill 、 killall 结束进程
(二)查看
1、输入命令:ps aux(all user x更详信息)
user-->使用者 当前进程是谁启动的
PID-->进程号
%CPU -->占用cpu情况
VSZ RSS -->不太重要 虚拟内存 路由内存占用情况
TTY-->终端(ctrl+alt+F2进入终端)?表示不占用终端
STAT-->状态
S-->sleeping休眠状态
R-->runing
+-->表示前台运行
Ss-->有子进程
Z-->Zombie僵尸进程(开发不完善的程序在关闭的时候造成的)
l-->还有由这个进程开启的其他进程
其余的不重要
注意:ps aux 和pstree 查看进程状态,都是当前一瞬间的,并不是时时的
2、top命令实时的
1、分析上面的内容
2、实际上是存在光标的
1、输入h 显示帮助
2、输入M (大写,不显示)按内存占用率排序(降序)
3、输入P(大写)cpu占用率排序
4、q退出
实验(一)创建一个程序,占用大量内存
实验步骤:
1、创建文件 vim test.sh
2、 #/bin/bash //使用当前命令解释器
while [ 5 -gt 3 ] //5>3
do
echo "kaso" //输出kaso
done
3、保存退出
4、添加执行权限
chmod +x test.sh
5、开启另外一个终端
top 输入P
发现test.sh占用比较高
结束该程序:输入K 提示输入要杀死的PID 输入PID后,提示按什么级别杀死 输入9最高级别
6、回到另一个终端查看 输出结束了
3、进程管理
终端输入 firefox(开启火狐浏览器)
稍等,火狐浏览器启动了,但是发现终端输入命令,不好使了因为,火狐浏览器在运行,占用了当前的终端
在另外一个终端,输入 ps -P |grep firefox发现进程有:
一个终端,一个命令解释器, 一个主进程,剩下的全是子进程,
想要结束火狐进程,杀掉主进程就好,因为杀死子进程,主进程还会在自动开启这个子进程
停止进程:
回到被占用的终端,ctrl+Z 可以将火狐暂停,放入后台 top查看有一个stop的进程 看图形界面的火狐浏览器状态
唤醒停止的进程:
jobs 查看当情被停止的进程
fg 1 // 将后台停止的进程再次开启 数字1是被停止的后台进程序列号
关闭进程:
可以直接在图形化界面关闭浏览器即可
开启进程后台运行:
firefox &
killall:
并不是杀掉所有进程
例如:killall firefox 不知道firefox的pid,直接提供进程的名字,killall就会将所有与该名字有关的进程全部杀死