有没有办法使“屏幕”会话在重启后不受影响?


25

我正在使用Screen实用程序,并且想在机器重启时保留会话。如果可能的话,您可以推荐Screen的其他替代方法,该方法可以保留重新启动之间的会话。

如果有的话,我正在使用Ubuntu Server 10.04(Lucid Lynx)。

我通过屏幕打开了几个会话。机器重新启动时,所有这些会话都丢失了,我必须再次重新打开它们。我想找到一种方法来保留这些屏幕会话。


你想做什么?您要保留历史记录还是在屏幕会话中运行的所有内容?
Marcel G 2010年

1
这样做不会破坏重新启动的目的吗?
Brian Knoblauch

“会话”是什么意思?您是说在几个屏幕窗口中都具有与其他主机的ssh连接吗?如果那是您的意思,那么,如果您启用了ssh无密码登录,则编写一个.screenrc文件并指定要登录的user @ host应该可以解决问题。然后,当您启动屏幕时,所有ssh连接将自动启动。您甚至可以从rc.local启动它(有点棘手,因为您需要从su-yourusername启动它),因此登录时可以重新连接运行中的屏幕会话。
natxo asenjo 2010年

1
更重要的是,为什么要一直重启?Unix服务器不是Windows服务器,它们是为长时间运行而设计的,已知机器的运行时间为数年(没有内核安全补丁)。如果由于内核安全补丁程序而重新启动,请查看类似ksplice的内容。
Unix管理员

Answers:


16

首先,让我们澄清一些重要的事情:

  1. 涉及多少台机器?换句话说,您要连接到远程计算机,还是本地计算机上的所有内容?
  2. 如果涉及远程计算机,那么哪台计算机正在重新引导:是服务器还是客户端?

如果涉及到一台计算机,或者服务器正在重新引导,那么您几乎就没有运气了。

如果您要登录到远程计算机,但需要重新启动本地计算机,那么只要在远程计算机而不是本地计算机上运行屏幕就没有问题。我意识到这对于任何经验丰富(甚至略有经验)的屏幕用户来说都是显而易见的,但是我提到它只是为了以防万一。

还有另一种可能性(同样,这是否对您有所帮助取决于您的情况)是在VM上运行带有屏幕的计算机。假设它是一台远程物理服务器,需要重新启动,但它的来宾操作系统已安装在(例如)VMware上。您可以挂起客户机操作系统,并在硬件重启后再次启动它。这完全取决于您为什么需要重新启动(未指定),对计算机的控制程度以及是否愿意承担所有麻烦。

没有EASY解决方案,有可能所有解决方案都不适合您。但是,祝你好运。

如果要登录多台计算机,则要在所有远程计算机上分别运行屏幕似乎很麻烦,事实确实如此。在这种情况下,具有一个中间计算机运行屏幕很有用,该屏幕可以具有许多屏幕窗口,每个窗口都登录到另一台远程计算机上。只要中间计算机处于启动状态,您就可以重新启动自己的本地计算机(或将其包装在包中,然后整夜带回家,或其他原因),并且屏幕在中间计算机上保持运行。(很明显,如果任何远程计算机出现故障,您都将失去与该计算机的连接,但是其余的屏幕会话都可以。)

但是在大多数情况下,您指的是远程计算机或唯一要重新引导的计算机,在这种情况下,没有简单的方法可以做到这一点。起初CryoPID听起来很有希望,但其网站说它不适用于屏幕。

但是还有另一种值得探索的有希望的选择。(它是否对您有用,在很大程度上取决于您要执行的操作。)请在github.com上进行检查:https : //github.com/skoneka/screen-session/tree/master/ScreenSession/


+1为cryoPID,不知道!
Unix管理员2010年

ScreenSession看起来很有趣,从它的描述来看,这正是我想要的
Sergey G,2010年

5

在极少数情况下,这是可能的(请参阅CryoPIDCryoPID2),但是通常这很困难,因此无法完成。


链接断开。
kasperd

4

而不是使用屏幕,而是使用小型Virtualbox VM并在其中进行操作。然后,您可以使其休眠,重新启动主机,然后唤醒虚拟机(就像关闭并重新打开笔记本电脑的机盖一样)。通过这种方法,与远程主机的SSH连接可能无法持久,我认为不可能保证这一点。


实际上,我想将我的答案更新为tmux-resurrect
Gaius 2015年

tmux-resurrect看起来是一个很好的解决方案。
serv-inc


1

在所有这些方面,Screen本身都是非常小的边缘。不是要“保存”屏幕,是吗?而是各种屏幕会话中的环境,无论它们是什么。

您似乎建议保存一个Screen会话将涵盖其中的SSH进程以及所有各种形式。Screen内部运行的内容完全不涉及Screen的业务,而这些东西将很难“保存”……如果可以实施,那将意味着什么。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.