Screen使用总结

背景及介绍

1、背景

实际工作中,我们经常需要通过SSH 或者telent远程登录到Linux服务器完成一些任务,其中有些任务需要很长时间(短则几小时,长则几天)的运行才能完成,比如训练深度学习模型、系统备份、ftp传输等。我们必须等待任务执行完毕,在此期间不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废。因此我们使用的电脑在等待任务完成期间,不能快速切换到其他任务,也不能被关闭,只能等待浪任务完成,白白浪费时间和资源。

2、简介

GNU Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。

GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能

  • 会话恢复

只要Screen本身没有终止,在其内部运行的会话都可以恢复。这一点对于远程登录的用户特别有用——即使网络连接中断,用户也不会失去对已经打开的命令行会话的控制。只要再次登录到主机上执行screen -r就可以恢复会话的运行。同样在暂时离开的时候,也可以执行分离命令detach,在保证里面的程序正常运行的情况下让Screen挂起(切换到后台)。

  • 多窗口

在Screen环境下,所有的会话都独立的运行,并拥有各自的编号、输入、输出和窗口缓存。用户可以通过快捷键在不同的窗口下切换,并可以自由的重定向各个窗口的输入和输出。Screen实现了基本的文本操作,如复制粘贴等;还提供了类似滚动条的功能,可以查看窗口状况的历史记录。窗口还可以被分区和命名,还可以监视后台窗口的活动。

  • 会话共享

Screen可以让一个或多个用户从不同终端多次登录一个会话,并共享会话的所有特性(比如可以看到完全相同的输出)。它同时提供了窗口访问权限的机制,可以对窗口进行密码保护。

GNU’s Screen 官方站点:http://www.gnu.org/software/screen/

3、安装–ubuntu系统

1、检查是否安装:

命令行输入下面的命令检查是否安装,没有安装,程序会提示"screen"尚未安装。

screen -ls

2、安装

未安装则输入如下命令安装

sudo apt install screen

常用命令汇总

1、新建 screen窗口

screen -S session_name

2、列出当前所有screen窗口

screen -ls

3、回到已有的screen窗口

screen -r session_name

4、退出screen窗口

 # 输入一下快捷键:ctrl + a + d

5、kill screen窗口

  • screen窗口内部
# 输入一下快捷键:ctrl+d
  • screen窗口外部

    • 1、使用screen窗口的名字
    screen -S session_name -X quit
    
    • 2、回到screen窗口,再退出screen窗口:
     # 1、回到screen窗口
     screen -r session_name
     # 2、利用exit退出screen窗口,退出窗口后session窗口被自动kill
     exit # 可能需要多次exit命令,因为screen中正在运行的程序可能也需要使用exit命令才退出(先使用exit命令退出screen中正在运行的程序,再使用exit命令退出screen)
    
    

6、出现多个screen窗口重名的情况(删除重名的screen窗口)

# 查看所有screen窗口
screen -ls
# 使用进程号进入(不要使用窗口名进入)
screen -r session_id
# exit退出
exit

参考链接:

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

https://blog.csdn.net/qq_41648043/article/details/109512804

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: "screen 使用时进程断了" 通常是指在使用screen工具时,被执行的进程因为某种原因而中断了。这可能是由于进程崩溃、网络连接中断、权限问题、系统错误等原因导致的。 要确定确切的原因,可以检查screen会话中的日志或使用命令行工具来诊断问题。例如,可以使用ps命令查看进程是否仍在运行,使用dmesg命令查看系统错误消息,或者检查进程的日志文件以了解进程中断的原因。 一些常见的解决方法包括重新启动screen会话、重新启动中断的进程、解决权限问题、修复系统错误等。具体的解决方法取决于中断的原因。 ### 回答2: 当我们使用`screen`命令时,如果它所连接的进程意外终止,我们可以通过以下步骤来解决这个问题。 首先,我们需要重新连接到`screen`会话。我们可以使用`screen -r [会话名称]`命令来实现这一点。如果只有一个会话,我们可以直接使用`screen -r`命令来重新连接。 如果我们发现无法重新连接到会话,可能是由于会话仍处于活动状态,我们可以尝试使用`screen -D -r [会话名称]`命令来强制连接到会话,并且如果必要,会使会话脱机。 如果重连仍然无效,我们可以尝试在重新连接之前发送一个`screen -X -S [会话名称] quit`命令来终止会话。这将强制终止会话,并且我们可以重新启动一个新的`screen`会话。 另外,我们还可以通过检查活动进程的状态来解决进程断开的问题。使用`ps`命令可以查看活动进程的列表。我们可以使用`ps aux`来获得完整的进程列表,并找到已断开的进程。 找到断开的进程后,我们可以尝试重新启动该进程。我们可以使用`kill -CONT [进程ID]`命令来恢复进程的执行。 如果上述方法仍然无效,我们可能需要查看该进程的日志文件或调试输出来解决问题。根据进程的具体情况,我们可以在配置文件或命令行参数中设置日志文件路径或调试模式。 总结起来,当使用`screen`时进程断开时,我们可以尝试重新连接会话,强制终止会话,检查和恢复断开的进程以及查看日志文件或调试输出来解决问题。 ### 回答3: 当我们使用screen命令创建一个新的会话时,我们可以在该会话中运行多个进程。然而,有时候会出现进程断掉的情况。 进程断掉的原因可能有很多。一种可能是因为进程本身出现了错误或异常导致崩溃。另一种可能是由于系统资源的限制,比如内存不足或CPU负荷过重,导致进程被终止。 当进程断掉时,我们通常可以通过以下几种方式解决这个问题: 1. 查看进程日志:首先,我们可以通过查看进程的日志文件来获取有关进程崩溃的详细信息。日志文件通常会记录进程崩溃时的错误消息、异常堆栈等相关信息,帮助我们确定问题的根本原因。 2. 重新启动进程:一旦我们找到了进程崩溃的原因,我们可以尝试重新启动进程。这可以通过在screen会话中运行启动进程的命令来实现。如果进程在启动时需要特定的参数或配置文件,我们需要确保这些参数和配置文件正确地传递给启动命令。 3. 调整系统资源:如果进程断掉是由于系统资源的限制引起的,我们可以尝试调整系统资源以解决问题。这可能包括增加内存容量、优化进程的CPU使用率或者调整系统的负载平衡策略。 4. 更新进程或依赖库:有时,进程的崩溃可能是由于软件版本过旧或存在已知的BUG导致的。在这种情况下,我们可以尝试更新进程或其依赖库到最新的版本,以修复已知问题。 总的来说,当screen会话中的进程断掉时,我们需要通过查看日志、重新启动进程、调整系统资源或更新软件等方式来解决问题。关键是要确定断开的原因,并采取适当的措施来应对。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值