使用 Ctrl+Z 组合键停止 shell 运行中的作业. 停止作业后, Linux 系统会让用户终止或重启它. 可以使用 kill 命令终止进程. 重启停止的进程需要向它发送 SIGCONT 信号.
重启, 停止, 终止和恢复作业的操作称为作业控制 (job control). 使用作业控制可以完全控制进程以 shell 环境中运行的方式.
1 查看作业
作业控制的关键命令是 jobs 命令. jobs 命令可以查看 shell 处理的当前作业:
脚本使用 $$ 变量显示 linux 系统分配给脚本的 PID, 然后进入循环, 每次迭代间隔 5 秒. 通过命令行节目启动第一个脚本, 然后使用 Ctrl+Z 组合键停止它. 接下来, 使用 & 符号以后台进程方式启动另一个作业, 并将该脚本的输出重定向到一个文件, 以便不会在监视器上显示.
作业启动之后, 使用 jobs 命令查看分配给 shell 的作业. jobs 命令即可以显示停止的作业也可以显示作业状态, 还包括作业编号以及作业中使用的命令. jobs 命令使用的一些不同参数:
输出中的加号和减号. 带有加号的作业被视为默认作业. 如果命令行没有指定作业编号, 则它应该是任何作业控制命令引用的作业. 带有减号的作业实在处理完当前默认作业之后将成为默认作业的作业. 某一时间点, 只能有一个带有加号的作业, 也只能有一个带有减号的作业, 无论 shell 中运行了多少作业. 在 kill 掉当前默认作业, 之前带有减号的作业, 变成了默认作业.
2 重新启动停止的作业
在 bash 作业控制下, 能够以后台进程或前台进程的形式重新启动任何停止的作业. 前台进程将控制正在处理的终端, 因此谨慎使用特性. 要以后台模式重新启动作业, 可以使用带有作业编号的 bg 命令. bg 命令格式: bg 作业编号
以后台模式重新启动作业, 出现命令行界面提示符, 能够继续处理其他命令. 要以前台模式重新启动, 可以使用带有作业编号的 fg 命令: fg 作业编号.
fg 操作实例:
作业现在以前台模式运行, 在作业完成无法使用命令行界面提示符.
来源: http://www.bubuko.com/infodetail-2586083.html