Skip to content

[screen]Linux上保持程序在关闭ssh窗口后继续运行

Screen

* screen是Linux下的多重视窗管理程序。在使用SSH远程登录Linux时,如果连接中断(网络中断,直接关闭连ssh窗口等),重新连接时,系统将开一个新的session,无法恢复原来的session,而screen则可以解决这个问题 。

* 这个软件就是本文的核心,通过它,我们就可以实现如frp等程序可以在关闭ssh窗口后仍然可以后台运行。


环境

  • 腾讯云服务器 - Linux - ubuntu20.04
  • screen
    • 版本:
      • # screen -v
      • Screen version 4.08.00 (GNU) 05-Feb-20
    • 安装
      • # sudo apt-get install screen

使用方法示例

这里我们用screen来维持frps的运行作示例来展示screen的使用方法。

  • frps
    • 这是一个实现内网穿透的服务端。
    • 它默认情况下是需要保持ssh窗口的开启才能运行,一旦关闭ssh窗口,frps就会随之关闭。
  • 首先让screen创建一个窗口
    • # screen -S frps
    • 注意命令中的 -S 是大写的 S。
    • 命令中的第三部分frps只是一个名字而已,虽然创建的窗口是我们想用来保持frps运行的,但你可以随意起一个其他的名字,如abc,coolight等等。
  • 然后直接运行frps
    • # frps -c frps.ini
    • 你也可以运行其他软件。
  • 到这里实际上已经完成了,接下来可以直接把ssh窗口关闭,然后测试一下frps(你运行的软件)是否还在运行。

screen的常用命令

  • # screen -S 窗口名
    • 让screen创建一个窗口,使得把当前ssh窗口关闭后让screen保持这个窗口的运行。
  • # screen -ls
    • 列出所有screen维持的窗口。
  • # screen -r 窗口名
    • 回到这个窗口。
  • 退出一个会话窗口
    • 回到那个窗口。
    • 直接执行 exit 即可。