让程序可以在断开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连接linux服务器中断后,如何让命令继续在服务器运行

http://blog.csdn.net/v1v1wang/article/details/6855552   转自:http://www.diybl.com/course/3_program/j...
  • gukesdo
  • gukesdo
  • 2011年10月24日 21:20
  • 17711

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

碰到问题:通过SSH远程登录到Linux系统,要在/home目录下面利用java命令运行一个jar包的项目 关闭连接后项目也会停止运行,无法访问项目,必须重新登录到系统,再次手动执行命令,才能重新运...

如何在关闭ssh连接的情况下,让程序继续运行?

nohup和screen的使用。
  • smstong
  • smstong
  • 2010年09月09日 01:22
  • 7522

解决Linux关闭终端(关闭SSH等)后运行的程序自动停止

1 问题发现之前在服务器上起一个python的服务, 放到后台运行. `我关闭这个SSH之后,该服务不可用,再次登入到服务器,已经没有这个python进程为此我写了一个测试程序来描述此问题/////...
  • gatieme
  • gatieme
  • 2016年10月10日 14:49
  • 5310

ssh远程执行命令并自动退出

ssh可以登陆远程服务器,格式如下:
  • fdipzone
  • fdipzone
  • 2014年04月05日 23:01
  • 107401

如何实现SSH断开后 进程仍然在后台运行

对于linux运维,我们都是使用ssh登录到服务器,如果我们运行的任务需要很长时间或不间断运行,在我们直接关闭终端窗口或网络不稳定的情况下,任务就会中断,当然这只对于普通程序,不包括如mysqld,h...
  • v1v1wang
  • v1v1wang
  • 2011年10月09日 14:16
  • 18565

使用Screen后台执行任务,防止SSH中断

Screen,虚拟终端管理器。我们可以用它在后台管理终端界面,这样SSH断开后就不用怕正在进行的操作中断了。 #安装: sudo apt-get update sudo apt-get inst...

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

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

如何在关闭ssh连接的情况下,让程序继续运行?

对Unix,Linux类服务器维护经常是通过ssh完成的,而有些操作比较费时,如更新程序等。此时如果断开ssh连接的话,更新程序就会随之被中断。如何保证断开ssh后仍旧能保持更新进程的运行呢?有两种方...

断开SSH连接后让程序继续运行

ssh连接Linux,想关闭连接后  后台还可以运行某程序  可以使用nohup命令
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:让程序可以在断开ssh连接后接着运行 screen
举报原因:
原因补充:

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