为了方便起见,shell 会持续跟踪它生成的所有后台进程。键入 jobs,可以看到一个列表:
$ sleep 10 & sleep 10 & sleep 10 &
[1] 16843
[2] 16844
[3] 16845
$ jobs
[1] Running sleep 10 &
[2] Running sleep 10 &
[3] Running sleep 10 &
此处,为了方便起见,三个工作分别用标签标为 1,2 和 3。数字 16843、16844 和 16845 分别是每个进程的进程 ID。因此,后台任务 1 即为进程 ID 16843。
您可以利用这些标签,从命令行操作您的后台工作。例如,如要终止某个命令,键入 kill %N ,其中 N 是该命令的标签。如要将某个命令由后台移到前台,请键入 fg %N :
$ sleep 10 & sleep 10 & sleep 10 &
[7] 17741
[8] 17742
[9] 17743
$ kill %7
$ jobs
[7] Terminated sleep 10
[8]- Running sleep 10 &
[9]+ Running sleep 10 &
$ fg %8
sleep 10
从命令行中同时异步运行多个命令,是处理您自己的任务集的好方法。一个长时间运行的工作(例如,系统管理的数值计算或大型程序的编译)最适合放在后台。为了捕获每个后台命令的输出,请考虑使用重定向操作符 >、>&、>> 和 >>&,将输入重定向到某个文件。当后台命令结束后,shell 会在下一个提示符之前显示一条警告消息:
$ whoami
mstreicher
[8]- Done sleep 10
[9]+ Done sleep 10
$
向遥远的进程池前进
标签: