part2
问题引入
最近使用ssh登录远程linux之后,会执行一些长时间运行的程序如复制大文件,实时查看进度等等,有时会因为网络波动原因,导致ssh连接掉线,随之而来的就是之前ssh连接下执行的进程都会被停止kill。
所以迫切需要一个在后台运行,且不会因为终端会话窗口关闭而停止。以下是几种可行的方式。
之前已经介绍完使用nohup + & 来让程序后台运行不中断,现在介绍第二种形式 screen和tmux,以及第三种方式systemd(创建服务)
0x1 screen
screen 是一个开源的linux程序,它可以创建虚拟终端,这些终端可以放入后台,需要时可以调出打开查看,同时不会因当前终端退出而停止。
官方地址 https://www.gnu.org/software/screen/manual/screen.pdf
1.1 安装
apt install screen
yum install screen
1.2 基础操作: 创建、脱离 、恢复、删除,多窗口(分屏)
创建终端(会话)
screen -S name 其中name为终端会话名,创建完之后会直接进入该(虚拟)终端
暂时离开终端(会话)
在虚拟终端内 使用ctrl + a +d (detach)
在其他终端 使用screen -d name_or_id (detach)