如何使用FG和BG命令管理Linux后台作业
时间:2020-03-05 15:26:43 来源:igfitidea点击:
在Linux和UNIX系统中,作业被定义为已开始运行且尚未完成的任务。
每个任务基本上是执行的程序,这是一个过程。
每个作业都分配有一个名为作业编号的唯一ID(作业ID)。
我们可以在背景中运行作业,而无需用户任何干预,也可以在前台运行为当前作业。
在本教程中,我们了解FG和BG命令来管理Linux中的作业。
BG命令
通过BG命令的背景中可以继续通过一些中断信号停止的进程。
$nautilus ^Z [1]+ Stopped nautilus
此过程已停止使用"Ctrl + Z"中断信号。
可以使用作业命令检查停止的进程。
但在检查之前,让我们创建另一个作业并使用停止信号中断它。
$jedit 9:22:28 AM [main] [warning] jEdit: inifPLAF failed to set required l&f 9:22:29 AM [main] [warning] jEdit: inifPLAF failed to set required l&f ^Z [2]+ Stopped jedit $jobs [1]- Stopped nautilus [2]+ Stopped jedit
我们可以看到作业的状态已停止。
加号(+)表示当前作业。
减号( - )是指以前的工作。
现在,在后台运行停止的作业,我们使用BG命令。
默认情况下,如果没有给出参数,则BG在后台运行当前作业。
$bg [2]+ jedit &
$jobs [1]+ Stopped nautilus [2]- Running jedit &
BG命令可以将作业编号作为参数。
作业编号在作业输出中的方括号中指示。
在上面的例子中,Nautilus的作业编号是1.现在我们使用此作业编号来运行后台工作。
指示作业编号需要%
符号。
$bg %1 [1]+ nautilus & $jobs [1]- Running nautilus & [2]+ Running jedit &
BG命令也可以通过其名称引用作业。
例如,"%字符串"是指名称以指定的字符串和"%?
字符串"(字符串)引用的作业是指名称包含指定字符串的作业。
为了插图,我们有两个停止的工作。
$jobs [1]+ Stopped nautilus [2]- Stopped jedit $bg %nau [1]+ nautilus & $jobs [1]- Running nautilus & [2]+ Stopped jedit $bg %?ed [2]+ jedit & $jobs [1]- Running nautilus & [2]+ Running jedit &
FG命令
FG命令就像BG命令,除了它而不是在后台发送命令,它将它们运行在前景中并占用当前终端并等待进程退出。
# jobs [1]- Stopped makewhatis [2]+ Stopped vi
没有任何参数,FG将在前台运行当前作业(在这种情况下VI)。
# fg vi
当命令在前台运行时,我们不会返回终端,直到命令退出。
因此,Jobs命令现在只显示VI现在将退出一份工作。
# jobs [1]+ Stopped makewhatis # fg %1 makewhatis # jobs
没有剩下的工作。
与bg,%string
和`%?
串也适用于FG。
# jobs [1]- Stopped makewhatis [2]+ Stopped vi # fg %v vi # fg %?what makewhatis