关闭

让程序可以在断开ssh连接后接着运行 screen

1396人阅读 评论(0) 收藏 举报
分类:
 就几个命令  screen  #打开新的工作窗口;
                     screen -S name  #新建一个名字为name的session
                     screen  -ls #查看存在的工作窗口
                     ctrl+a+d   #detached
                     screen -r  xxxx#切换到要选择的工作窗口 

                      kill掉screen命令    screen -ls 查看进程号
                                                    kill -9 xxxx
                                                    screen -wipe
                                                    screen -ls  确认kill掉
                     screen -ls 
                     screen -D -r xxxx  (如果是attached状态可以利用这个命令恢复窗口)
                    



http://www.xzcblog.com/post-126.html

http://www.cnblogs.com/mchina/archive/2013/01/30/2880680.html


但是问题来了,因为Transmission和aMule都有图形界面,所有下载文件都比较方便,可是Wget就不一样了,因为没有图形界面所以只 能登录ssh来下载,可是如果下载的文件比较大,等待的时间比较长,就必须等待它执行完毕,在此期间可不能关掉窗口或者断开连接,否则这个任务就会被杀 掉,一切半途而废了。

为了解决这个问题,上网查了半天资料总算在这里找到了解决办法:

文中介绍了screen这个软件,我们可以通过这个软件来管理命令。具体的方法我就不说了,大家可以到上面的这个网站自己看看,我就说说简单的基本应用。

安装screen:

ubuntu

1 sudo apt-get install screen

openwrt

1 opkg update
2 opkg install screen

screen的使用方法:

1.直接在命令行键入screen命令

1 root@DreamBox:~# screen

Screen将创建一个执行shell的全屏窗口。你可以执行任意shell程序,就像在ssh窗口中那样。在该窗口中键入exit退出该窗口,如果这是该screen会话的唯一窗口,该screen会话退出,否则screen自动切换到前一个窗口。

2.Screen命令后跟你要执行的程序。

1 root@DreamBox:~# screen wget http://xxx.xxx/xxx

3.以上两种方式都创建新的screen会话。我们还可以在一个已有screen会话中创建新的窗口。在当前screen窗口中键入C-a c,即Ctrl键+a键,之后再按下c键,screen 在该会话内生成一个新的窗口并切换到该窗口。

screen还有更高级的功能。你可以不中断screen窗口中程序的运行而暂时断开(detach)screen会话,并在随后时间重新连接(attach)该会话,重新控制各窗口中运行的程序。

例如,我们打开一个screen窗口编辑/tmp/abc文件:

[root@tivf06 ~]# screen vi /tmp/abc

 

之后我们想暂时退出做点别的事情,比如出去散散步,那么在screen窗口键入C-a d,Screen会给出detached提示


暂时中断会话
暂时中断会话

半个小时之后回来了,找到该screen会话:

[root@tivf06 ~]# screen -ls
There is a screen on:
        16582.pts-1.tivf06      (Detached)
1 Socket in /tmp/screens/S-root.

 

重新连接会话:

[root@tivf06 ~]# screen -r 16582

 

看看出现什么了,太棒了,一切都在。继续干吧。

你可能注意到给screen发送命令使用了特殊的键组合C-a。这是因为我们在键盘上键入的信息是直接发送给当前 screen窗口,必须用其他方式向screen窗口管理器发出命令,默认情况下,screen接收以C-a开始的命令。这种命令形式在screen中叫 做键绑定(key binding),C-a叫做命令字符(command character)。

管理你的远程会话

先来看看如何使用screen解决SIGHUP问题,比如现在我们要ftp传输一个大文件。如果按老的办法,SSH登录到 系统,直接ftp命令开始传输,之后。。如果网络速度还可以,恭喜你,不用等太长时间了;如果网络不好,老老实实等着吧,只能传输完毕再断开SSH连接 了。让我们使用screen来试试。

SSH登录到系统,在命令行键入screen。

[root@tivf18 root]# screen

 

在screen shell窗口中输入ftp命令,登录,开始传输。不愿意等了?OK,在窗口中键入C-a d:


管理你的远程会话
管理你的远程会话

然后。。退出SSH登录?随你怎样,只要别杀掉screen会话。

是不是很方便?更进一步,其实我们可以利用screen这种功能来管理你的远程会话,保存你所有的工作内容。你是不是每次 登录到系统都要开很多窗口,然后每天都要重复打开关闭这些窗口?让screen来帮你“保存”吧,你只需要打开一个ssh窗口,创建需要的screen窗 口,退出的时候C-a d“保存”你的工作,下次登录后直接screen -r <screen_pid>就可以了。



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:132557次
    • 积分:1957
    • 等级:
    • 排名:千里之外
    • 原创:53篇
    • 转载:63篇
    • 译文:4篇
    • 评论:24条
    最新评论