代码改变世界

终端调到后台运行

2012-12-07 14:12  小耳  阅读(311)  评论(0编辑  收藏  举报

将任务转到后台运行的方法是在命令的最后加上“&”即可,这两者都是基于Unix的,命令应该殊途同归吧:
1、& 最经常被用到

  这个用在一个命令的最后,可以把这个命令放到后台执行 

2、ctrl + z
  可以将一个正在前台执行的命令放到后台,并且暂停 

3、jobs
  查看当前有多少在后台运行的命令 

4、fg
  将后台中的命令调至前台继续运行
  如果后台中有多个命令,可以用 fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)。 

5、bg
  将一个在后台暂停的命令,变成继续执行
  如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)。 


6、 将1中的命令放在 “()”中, 即 “(./myjob &)”,所提交的作业并不在作业列表中,是无法通过jobs来查看的。

7、 使用"nohup", 即 “nohup ./myjob &”,忽略hangup信号,防止shell关闭时程序停掉。

8、使用"setsid", 即“setsid ./myjob”。

9、对已经运行的程序可以用 “disown -hmyjob” 来使某个作业忽略HUP信号。

10、使用“screen". screen 下的操作会在screen下运行,无法在jobs中查看到。常用的命令有:
 

    a) 新建一个screen: screen-S   my_screen_name. 建好后就可以进行所需要的操作了。
     b) 暂时断开screen: Ctrl-a d
     c)  重新打开screen: Ctrl-a screen_id
     d) 查看所有screen状态: screen -ls
     e) 终止screen: screen -S my_screen_name  -Xkill
     f) 在当前窗口新建窗口: Ctrl-a c
     g) 退出当前窗口: exit
     h) 显示所有窗口列表:Ctrl-a w