哪里学Linux开发?作业怎么控制Jobs?

使用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://kuaibao.qq.com/s/20180503A13FBO00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券