jobs命令可以查看shell处理的当前作业。
jobs命令的参数:
以上解析:
脚本使用$$变量显示Linux系统分配给脚本的PID,然后进入循环,每次迭代间隔5秒。通过命令行节目启动第一个脚本,然后使用Ctrl+Z组合键停止它。
使用&符号以后台进程方式启动另一个作业,并将该脚本的输出重定向到一个文件,以便不会在监视器上显示。
作业启动之后,使用jobs命令查看分配给shell的作业。jobs命令即可以显示停止的作业也可以显示作业状态,还包括作业编号以及作业中使用的命令。
jobs输出中输出中的加号和减号。
在bash作业控制下,能够以后台进程或前台进程的形式重新启动任何停止的作业。前台进程将控制正在处理的终端,因此谨慎使用特性。
要以后台模式重新启动作业,可以使用带有作业编号的bg命令。
bg命令格式:bg 作业编号
以后台模式重新启动作业,出现命令行界面提示符,能够继续处理其他命令。
要以前台模式重新启动,可以使用带有作业编号的fg命令:fg 作业编号。
在多任务操作系统中,内核负责为系统中运行的每个进程分配CPU时间。实际上,CPU中一次只能运行一个进程,因此内核轮流向每个进程分配CPU时间。
默认情况下,从shell启动的所有进程在Linux系统上的调度优先级都相同。调度优先级是内核相对其他进程分配个某一个进程的CPU时间量。
调度优先级是一个整数值,从-20(最高优先级)到+20(最低优先级)。默认情况下,bash shell启动所有优先级为0的进程。这表明只需要一点处理时间的简单脚本与需要运行几个小时的复杂数学算法得到的CPU时间段相同。
有时需要更改特定命令的优先级,可能要降低优先级以减少它占用的CPU资源,还可能要提高优先级,以获得更多的处理时间。
nice命令可在启动命令时设置它的调度优先级。
renice命令可以更改已经在系统中运行的命令优先级。它能够指定运行进程的PID以更改优先级
renice命令自动更新运行程序的调度优先级。renice命令有如下几个限制:
Linux使用信号与系统上运行的进程进行通信。
可以使用这些信号控制Shell脚本的运行,只需要让shell脚本在接收到来自Linux系统的特定信号时执行命令即可。
自学Linux Shell15.2-作业控制命令(jobs/bg/nice/renice/at/atrm/cron)
原文:https://www.cnblogs.com/yaoyaojcy/p/9256720.html