Fork me on GitHub

后台运行:命令+&

例如 sleep 60 &

jobs -l

显示job的pid和状态

ps 显示用户进程

将第一个job切换回前台:fg 1

放到后台:bg 1

cltr + z 挂起进程

退出shell  exit直接关闭好像也可以

问题:使用新的session怎样找回后台进程。

 

 

更好的办法,使用screen

1、新建一个screen

直接screen或者screen -S XXXXXX是你为这个screen指定的名字)

2、在screen中新建一个虚拟终端(此时你的screen中就有了两个虚拟终端了)

ctrl+a+c(先按ctrl+a,然后再按c,下面的命令也一样)

3、在虚拟终端之间切换s

前一个ctrl+a+p
后一个ctrl+a+n
列表选择ctrl+a+shift+"

4、关闭一个虚拟终端

ctrl+a+k或者exit

5、挂起screen(挂起之后你又回到了创建screenshell

ctrl+a+d

6、重新连接screen

screen -ls列出当前挂起的screen
比如有这样一条“8888.XXX (Detached)

那么可以使用screen -r 8888或者screen -r XXX来重新连接。

对于文章开头的问题,应该可以解决了,你连上远程主机后,先不要急于运行你的指令,而是先创建一个screen,然后在screen的虚拟终端里面运行你的指令,要断开连接之前先把screen挂起,下次连进来的时候你只需要重新连接你的screen,你会发现你的指令已经乖乖地执行完毕或者正在执行而不是被迫中断了。

一般以上的用法已经足够,如果需要更多,请直接screen --help。顺便说一下,一般发行版是不带这个软件的,你需要自行安装,ubuntu下面就直接sudo apt-get install screen

 

posted on 2014-02-24 09:27  huashiyiqike  阅读(1798)  评论(0编辑  收藏  举报