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

转载 2016年05月31日 20:47:52
 就几个命令  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>就可以了。



在ssh、telnet断开之后继续执行程序

大部分内容转自: http://blog.zhangjianfeng.com/article/718 你是不是经常需要 SSH 或者 telent 远程登录到 Linux服务器?你是不是经常为一些长时...
  • wind19
  • wind19
  • 2009年12月11日 14:57
  • 14742

解决Linux/CentOS断开SSH连接后程序被终结的问题

有时候需要在云服务器上跑一些程序,比如ASF挂卡(steam挂卡不可取)、比如某个备份程序、FTP上传、服务器通讯等等等,一旦断开SSH,这些你在SSH启动的任务都会被杀掉(SIGHUP 信号)。...
  • Shenpibaipao
  • Shenpibaipao
  • 2017年05月10日 17:46
  • 585

Linux下SSH远程连接断开后让程序继续运行解决办法

转自:http://blog.csdn.net/joeblackzqq/article/details/38978957 碰到问题: 通过SSH远程登录到Linux系统,要在/home...
  • zhouhuakang
  • zhouhuakang
  • 2016年04月28日 21:33
  • 3937

ssh断开后保持进程运行的方法(使用nohup,screen)

如果想在关闭ssh连接后刚才启动的程序继续运行怎么办,可以使用nohup。但是如果要求第二天来的时候,一开ssh,还能查看到昨天运行的程序的状态,然后继续工作,这时nohup是不行了,需要使用scre...
  • MangoNova
  • MangoNova
  • 2016年10月22日 16:10
  • 1353

Linux下SSH远程连接断开后让程序继续运行解决办法

转自:http://blog.csdn.net/joeblackzqq/article/details/38978957 碰到问题: 通过SSH远程登录到Linux系统,要在/home...
  • zhouhuakang
  • zhouhuakang
  • 2016年04月28日 21:33
  • 3937

Linux下ssh断开时能继续执行任务

一般通用的是nohup和screen。后者更为强大。 简单的用screen就是 screen   进入screen模式(第一次运行程序时) screen -D -RR   从screen模式返回...
  • hellobinfeng
  • hellobinfeng
  • 2014年02月13日 13:45
  • 4138

screen命令让断开SSH/TELNET的你依然可以保持程序继续运行工作

这几天研究CENTOS,一直在SSH上操作,感觉很爽。但是有时一不小心断网什么的,SSH上正在编译的那些程序就白费了!特别是编译那些很久很久的程序时,特别心疼。有时候下课了也要等他编译完才敢走。现在发...
  • xiaoxinghehe
  • xiaoxinghehe
  • 2012年12月17日 09:59
  • 2098

screen与协同工作让ssh在路由断后程序始终运行

screen是系统管理员手中的一件利器,下面我把它介绍给你,相信你会和我一样,认可这个非常棒的软件 一,什么情况下会用到screen?    比如说,我们在运行一个非常费时间的程序,注意:...
  • penglei0901
  • penglei0901
  • 2014年04月05日 11:19
  • 677

ssh断开后保持进程运行的方法(使用nohup,screen)

如果想在关闭ssh连接后刚才启动的程序继续运行怎么办,可以使用nohup。但是如果要求第二天来的时候,一开ssh,还能查看到昨天运行的程序的状态,然后继续工作,这时nohup是不行了,需要使用scre...
  • MangoNova
  • MangoNova
  • 2016年10月22日 16:10
  • 1353

在ssh、telnet断开之后继续执行程序(nohup + screen)

你是不是经常需要 SSH 或者 telent 远程登录到 Linux 服务器?你是不是经常为一些长时间运行的任务而头疼,比如系统备份、ftp 传输等等。通常情况下我们都是为每一个这样的任务开一个远程终...
  • benben_1678
  • benben_1678
  • 2012年09月18日 09:26
  • 489
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:让程序可以在断开ssh连接后接着运行 screen
举报原因:
原因补充:

(最多只允许输入30个字)