4.2 作业管理
是指控制当前正在运行的进程的行为,也称为进程控制。 是shell的一个特性,使用户能在多个独立进程间进行切换。
例如,用户可以挂起一个正在运行的进程,稍后再恢复其运行。当用户使用vim编辑一个文本文件,并需要中止编辑做其他事情时,利用作业控制,可以让编辑器暂时挂起,返回Shell提示符开始做其它事情。其他事情昨晚后,用户可以重新启动挂起的编辑器,返回到刚才中止的地方,就像用户没有离开过编辑器一样。
foreground:前台进程fg,在终端中运行的命令,占领终端; background:后台进程bg,没有控制终端,不需要终端交互,看不见,但是在运行。
4.2.1 查看当前终端放入后台的作业:jobs
jobs
命令的基本语法如下:
jobs [选项]
参数说明:
选项 | 含义 |
---|---|
-l(L 的小写) | 列出进程的 PID 号。 |
-n | 只列出上次发出通知后改变了状态的进程。 |
-p | 只列出进程的 PID 号。 |
-r | 只列出运行中的进程。 |
-s | 只列出已停止的进程。 |
例:
观察占领前台的现象
sleep 2500
运行后台程序
sleep 3500 &
ps查询所有程序
ps aux | grep sleep
查看当前终端放入后台的作业
jobs -l
将后台程序调至前台
fg 4 # 4为作业编号
将前台作业调至后台
ctl+z # 或 bg 4 jobs
消灭后台进程
kill %4 # 注意:kill 4,将pid=4的进程杀掉