『linux基础知识』shell 的任务管理
命令的任务调度
当您在终端里运行一个命令或开启一个程序时,终端要等到命令或程序运行完毕后,才能再被使用。在 Unix 中,我们称这样的命令或程序在前台(foreground)运行。如果您想在终端下运行另一个命令,则需要再打开一个新的终端。
但这里还有一个更优雅的办法,称为任务调度(jobbing)或后台(backgrounding)。当您运用任务的调度或将命令置于后台,终端就立即解放了,这样一来,终端立即就可以接受新的输入。为实现这样的目的,您只需在命令后面添加一个 & :
gqview &
告诉 shell 将图片查看器'GQview'放到后台去执行(即当成 job 来运行)。
命令 jobs 将告诉您,在这个终端窗口中,运行着哪些命令与程序:
jobs
[1]+ Running gqview &
当您要关闭终端窗口时,这一点就很重要,因为关闭终端将导致所有在其中运行的任务都将被中止,在此例中,如果您关闭了终端,由这个终端开启的 GQview 程序也将被关闭。
但如何将前台运行的一个程序放到后台去?没问题:
gqview
<CTRL z>
[2]+ Stopped gqview
bg
[2]+ gqview &
组合键 <CTRL z> 将挂起终端中正在运行的程序,然后您就可以用 bg 命令将其放到后台去执行。
请注意,在后台运行图形应用程序有时候是有用处的,这样可以在终端下显示这个程序的出错信息,虽然这对您可能没有直接的帮助,当如果碰到了麻烦,向别人询问时,这些出错提示就有用武之地了。
一些图形程序,很可能还处在测试期(Beta),尽管在后台执行,也会在终端中输出一些信息。如果您对此不满,可以用下面命令:
command &>/dev/null &
这不仅将程序送到后台执行,还将其输出发到'/dev/null'文件。'/dev/null'是系统的"碎纸机" (shredder),所有送到那里的信息都将消失殆尽。
本文由wjping119 发布于Linuxsky 论坛,网址:http://bbs.linuxsky.org/thread-2089-1-1.html
搜索更多相关主题的帖子:
shell 任务 linux 终端 命令