一)这里是指bash环境下的工作管理。进行工作管理的行为中,其实每个工作都是目前bash的子程序,亦即彼此之间是有相关性的。我们无法以job control的方式由tty1的环境去管理tty2的bash,对于图形化界面的多个bash之间也不能相互管理。
要进行bash的job control必须要注意到以下限制:
只管理自己的bash
前景:可以控制与下达指令的这个环境称为前景的工作(foreground)
背景:可以自行运行的工作,你无法用ctrl+c终止它,可以使用bg/fg呼叫该工作
背景中执行的程序不能等待terminal/shell的输入
二)常用工作管理命令及语法:
a. &
功能: 直接将指令丢到背景中执行
语法: command -option parameters &
例子: tar -zpcf /tmp/etc.tar.gz /etc &
b. ctrl + z
功能: 将目前正在进行的工作丢到背景中,且让它处于“暂停”状态
语法: 先按住Ctrl,再按z
c. jobs
功能: 查看有多少工作在背景当中
语法: jobs -option
例子: jobs -l //显示出该job的PID
d. fg
功能: 将背景中的工作拿到前景中来处理
语法: fg [%jobnumber]
例子:fg //将带+的取至前景执行; fg %2 //将第2号job取至前景执行
e. bg
功能: 让背景中处于“暂停”的工作开始“运行”
语法: bg %jobnumber
例子: bg %2 //让第2号job在背景中执行
f. kill
功能: 控制背景中的工作,比如直接移除、重启等
语法: kill -signal %jobnumber
例子:kill -9 %2 //直接从背景中移除2号job
注: 可用kill -l命令来查看当前可用的signal有哪些,常用1,9,15三个