Skip to content

Latest commit

 

History

History
30 lines (26 loc) · 2.46 KB

README-zuoye.md

File metadata and controls

30 lines (26 loc) · 2.46 KB

作业控制

  • 要重启停止的进程需要向其发送一个SIGCONT信号;启动、停止、终止以及恢复作业的这些功能统称为作业控制,通过作业控制,就能完全控制shell环境中所有进程的运行方式;

查看作业

  • 作业控制中的关键命令时jobs命令,jobs命令允许查看shell当前正在处理的作业如:
echo "script process ID:$ $"  //两个之间没有空格
count=1
while [ $count -le 10 ]
do
       echo "loop#$count"
       sleep 10
       count=$[ $count + 1 ]
done 
echo "end of script......"
  • 脚本用$$变量来显示Linux系统分配给该脚本的PID;要想查看作业的PID,可以在jobs命令中加入 -l选项(小写的L)
jobs命令选项参数 描述
-l 列出进程的PID以及作业号
-n 只列出上次shell发出的通知后改变了状态的作业
-p 只列出作业的PID
-r 只列出运行中的作业
-s 只列出已停止的作业
  • jobs命令输出中的加号和减号,带加号的作业会被当作默认作业,在使用作业控制命令时,如果未在命令行指定任何作业号,该作业会被当作作业控制命令的操作对象;当前的默认作业完成处理后,带减号的作业成为下一个默认作业,任何时候都只有一个带加号的作业和一个带减号的作业,不管shell中有多少个正在运行的作业;注意:默认作业进程(带加号的那个)是最后启动的那个进程;可以调用kill命令想默认作业进程发送一个SIGHUP信号,终止了该作业,在接下来的jobs命令输出中,先前带减号的作业成了现在的默认作业,减号也变成了加号;

重启停止的作业

  • 在bash作业控制中,可以将已停止的作业作为后台进程或前台进程重启,前台进程会接管你当前工作的终端,所以在使用该功能时要小心;要以后台模式重启一个作业,可用bg命令加上作业号;如:bg 2;如果作业是默认作业(从加号可以看出),只需要使用bg命令就可以将其以后台模式重启,注意,当作业被转入后台模式时,并不会列出其PID;如果有多个作业,就需要在bg命令后面加上作业号;如:bg 2;以前台模式重启作业,可以使用fg作业号 如:fg 2:由于作业是以前台模式运行的,知道该作业完成后,命令行界面的提示符才会出现;