2007-06-19

背景工作管理

关键字: Linux学习
&与Ctal+z
&
语法:command &
find / -name testing &      //将该执行程序丢到背景执行
fg                                       //将改程序拉回屏幕前执行

        如果想让屏幕中的工作(command)在背景下执行,可以使用&。不过,由于是背景执行,该程序的输出不会出现在屏幕上,所以需要特别留意输出信息的管线重导问题。另外,如何让该程序重新在屏幕上执行?使用fg
      
       当然,也可以使用ctrl+z将当前正在进行中的工作丢到背景下。放在背景下执行最大的好处就是不怕ctrl+c这个终端指令终端。

ctrl+z
       如果您正在使用vi编辑一个重要的数据文件,但是偏偏您想起有个程序需要留意,因此需要暂时退出vi,不过并不想在这个时候保存退出vi,那该如何做?在vi的一般模式下按ctrl+z,系统会告诉您“工作项目[1]在背景中,其状态为[stopped],亦即停止状态”,并且会退出vi,等待用户输入指令。如果想要回到vi,使用jobs配合bg或fg。

jobs,fg/bg,kill

        刚刚提到的背景下执行,那么怎么能知道当前有哪些工作是背景下?使用jobs,例如
jobs
[1]+ Stopped    vi .bashrc
中括号([   ])里的数字是jobs的代号

fg与bg

fg    %number
bg    %number
参数说明:
%   :后面跟数字,表示jobs的工作代号
number:工作代号
        bg是将背景中的程序由stopped变为Running的一个手段,至于fg,则是将背景中的指令移到屏幕上。一般的操作顺序就是执行jobs来查看背景程序的代号,然后使用bg %number将数据放到背景中执行,而fg %number则是将代号为number的程序移到屏幕前操作。


kill
语法:kill -signal %number
参数说明:
%number   :背景工作的代号,可以使用jobs查询
signal   :
       -1:重新读取参数配置文件(类似reload)
       -2:用户中断该工作,类似使用ctrl+c中断一个工作
       -9:立刻杀死一个gongzuo,不论该工作是否为死亡工作
       -15:停止一个工作(这是默认值)
例子:
jobs
[1]+   Stopped   vi .bashrc
kill   -9   %1
如果想直接杀掉背景中的工作,可以直接输入kill,但是由于默认是停止该程序,不见得可以将该工作清除干净,因此需要送出一个信号,告诉系统你是要杀死该程序,这时可以使用kill -9.另外,-15称为停止,是用一般的正常程序停止一个作业,而-9有强制终止的意思,可以控制死亡程序。
 
评论
发表评论

您还没有登录,请登录后发表评论

yanshiyi
搜索本博客
最近加入圈子
存档
最新评论