linux系统后台运行任务

       ssh与telnet远程登录到Linux服务器的时候,经常需要执行一些运行时间较长的任务,但是为每一个任务开一个ssh会话窗口或telnet远程端口,会比较麻烦,并且对于运行时间比较长的任务,如果关闭窗口,任务就会中断。

        对于不同的情形可以使用不同的解决方案:

        1、只是将任务以后台方式运行,中间不会中断会话窗口。

        这时候可以在任务后加&符号就可以将任务以后台方式运行,接下来就可以继续进行其他操作。

        2、任务所有的输出为输出到窗口的标准输出

        可以使用在任务前面加nohub,这样即使关闭了会话窗口,任务继续运行,可以使用jobs查看所有后台运行的任务,

fg %N可以杀掉该任务,N 为执行jobs命令后,结果中每一个任务的id。

        3、对于比较复杂的情况就要使用screen

        #screen命令创建一个新的执行shell的窗口,在这个窗口中可以运行所有的shell命令。

        #screen vi /etc/passwd 是在新的窗口中执行vi命令,如果这时候想去做其他事情就可以使用ctrl+a+d组合键,将该任务独立化,及时ssh中断也不会影响任务的运行。其中ctrl+a可以将我们在键盘上键入的信息直接发送给screen,screen默认接受以CTRL+a开始的命令,这种情况较做键绑定,其中ctrl+a叫做命令字符。


       其他与ctrl+a组合(简写为c-a)命令如下所示

       c-a ? 显示所有键绑定信息

       c-a  w  显示所有窗口列表

       c-a c-a 切换到之前显示的窗口

       c-a c    新建一个可以执行shell命令的窗口并切换到该窗口

       c-a n   切换到下一个窗口

       c-a p   切换到前一个窗口

       c-a 0..9 切换到窗口0..9

       c-a a   发送c-a到当前窗口

       c-a d   暂时断开当前screen窗口会话

       c-a k   杀掉当前窗口

       c-a 【  进入拷贝/回滚模式







   

猜你喜欢

转载自dsbjc.iteye.com/blog/1338931