美文网首页
screen命令(关闭本地,远程服务器程序继续跑)

screen命令(关闭本地,远程服务器程序继续跑)

作者: 马尔代夫Maldives | 来源:发表于2023-03-02 15:51 被阅读0次

写在前面

自己的电脑连上服务器后,如果断网、关闭电脑、关闭终端、关闭IDE等都会导致远程服务器上程序退出,这对于需要长时间训练的程序是不可忍受的。
如何让连接断开时,服务器仍然继续执行我们的程序呢?
方法有多种:https://www.bbsmax.com/A/A7zgljQlJ4/

本文只讲screen方法。

  • 一个screen相当于一个独立的环境,在screen中执行的程序都会被保护起来,不会因为终端关闭、远程连接断开、本地程序(vscode)退出等原因而被终止执行,其他与在普通terminal中执行程序没有半点差别。
  • screen建立后,除了手动杀死,否则他一直存在,且不会被其他程序干扰。

一、建立远程连接

建立远程连接.png

二、在服务器上远程创建screen

1. 创建screen

>> screen -S cgx_test

上述命令创建名为“cgx_test”的screen,在终端上可能不会出现明显变化,但实际上已经进入新建的screen了,此时再执行各种操作就都是在screen中进行了(表面上看不出啥不一样)

创建screen.png

2. 查看已经存在的所有screen

>> screen -ls
查看screen.png
图中“80927”是系统为我们创建的screen分配的pid。
(attached):相当于处在当前screen窗口;
(detached):相当于最小化了(跳出)的screen窗口(该窗口内运行的程序正常运行);
(dead):相当于死了的窗口(已经无效的screen窗口,需要被kill掉);
用上述命令实际上就可以查看当前处于那个screen,attached就是标志!

3. 跳出当前screen

快捷键:Ctrl+a+b(有时需要多按几次),跳出当前screen。

跳出当前screen.png

4. 重新进入screen

>> screen -r pid_name 或 pid 或 name

重新进入某screen后,该screen的状况会从detached变为attached。

5. 彻底杀死screen

  • 1)当前处于某screen内部
    快捷键Ctrl+b直接杀死当前screen;
    命令:输入“exit”回车杀死当前screen(可能需要多次执行exit命令,因为screen中可能存在其他正在执行的程序也需要exit命令退出);
    命令:用2)的命令杀死指定screen。
    注意:要看到‘screen is terminating’(如下图),对应screen才被kill。可用screen -ls查看是否还在。)

    Ctrl+d终结screen.png
  • 2)无论处于某screen内部还是处于普通终端(比如base)都可以用。

>> screen -S name -X quit

注意:用该命令时,好像不出现screen is terminating信息。)

6. 检查所有screen,并一次删除所有死亡无效的screen

>> screen -wipe

三、screen 使用举例

  • 1)情况1:直接执行远程代码,没有在本地编辑

    1png.png
    此时,进行断网、关电脑、关闭终端等操作。然后再重新连接上服务器,打开终端,进入该screen,可以看到,程序依然在运行
    2.png
  • 2)情况2:能否将vscode中的代码跑在screen中?
    没尝试成功!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    等待解决!!!!!

参考:
https://www.cnblogs.com/watson04/p/16950232.html
https://blog.csdn.net/weixin_47317192/article/details/126649130
https://blog.csdn.net/weixin_44612221/article/details/126279971
https://blog.csdn.net/weixin_43570155/article/details/121845415
https://blog.csdn.net/zhang_j_mail/article/details/127091978
https://mp.weixin.qq.com/s?__biz=MzI2OTE0ODY5Mw==&mid=2247484435&idx=2&sn=4285f2bcce7582526c3aaf01e14b30c3&chksm=eae5f369dd927a7fd7f6fed2ad82986e37b883af346ea116179acc5280cde59014b403f64a8a&scene=27

相关文章

  • ubuntu 远程服务器screen

    screen 是一个做远程控制的软件,比如当你在本地登录服务器跑代码时,如果本地不小心和服务器断了,那么服务器上的...

  • 避免等待需要长时间运行的命令

    screen命令可以用在需要上时间运行的命令,跳出等待, 也可以设置在ssh连接服务器时关闭命令窗口保持程序运行 ...

  • 2019-12-04 screen

    screen常用命令 介绍 screen:窗口管理器,可以建立多个会话。你在xshell上跑命令,关闭xshell...

  • tensorboard

    远程在服务器上跑程序之后,在本地查看tensorboard 1.在服务器上跑完,tensorflow的程序之后。在...

  • Linux-screen命令

    screen 的作用是,只要服务器不shutdown,我的程序就要一直跑,避免因为ssh远程登录连接之类中断,引...

  • 上传/下载文件从服务器

    一.终端命令操作 1.从远程服务器下载文件到本地: 命令 : scp -r 服务器路径 本地路径 2.讲本地...

  • 学习笔记

    安装 WINDOWS启动和关闭 mongod 启动服务器 关闭控制台 关闭服务器 命令行 mongo 连接本地服...

  • 远程服务器使用

    注意:远程端使用python尽量使用exit()关闭 建立远程服务器连接 从服务器下载文件 本地上传文件到服务器 ...

  • 可视化服务器端软件

    首先确保在服务器端和本地安装了以下两个依赖: 通过以下命令远程登录服务器 在远程终端上运行命令即可在本地可视化软件...

  • SCP命令常用操作

    传输本地文件至远程服务器 传输本地目录至远程服务器 传输远程服务器文件到本地 传输远程服务器目录到本地

网友评论

      本文标题:screen命令(关闭本地,远程服务器程序继续跑)

      本文链接:https://www.haomeiwen.com/subject/avljldtx.html