使用Screen让SSH断开后仍能运行程序

SSH连接Linux后在终端中执行程序,如果该程序是伺服程序,非短时间运行结束有所返回的程序,断开SSH后会强制杀死进程。
因此如果需要连上SSH执行命令持续运行某个程序,可以参考以下两种方案:

  • 加上前缀nohup指令,该指令让后面的代码在后台运行,而不在终端中堵塞
  • 使用第三方软件Screen

Screen大多数Linux发行版都会集成,但树莓派没有集成,我们需要手动安装:

sudo apt-get install screen

安装好后,在SSH中运行screen,进入欢迎界面,回车后打开一个新的终端子界面,在这个里面正常执行代码,堵塞后,按下Ctrl+A键,再按一次d脱离子界面,这时候screen会告诉你刚才子界面的id,以后你可以运行screen -r id进入运行中的子界面。

你也可以通过screen -ls命令查询所有运行中的子界面。