一、screen的作用
在使用服务器远程跑程序时,偶尔会遇到这样的问题:跑了很久,却突然断开连接了,一夜回到解放前,或者退出窗口重新进入时看不到代码运行界面了。
所以,当你通过ssh登录或以ssh为基础的工具软件(比如XShell、PyCharm,VSCode等,可以用这类工具调试,但是最终长时间运行时请以守护进程的方式执行命令)进行远程执行程序时,那么请注意开守护进程来执行程序,避免因为SSH连接中断导致程序终止,遭受不必要的损失。
那么,我们在运行代码之前使用screen等命令创建会话窗口,就可以解决以上问题。
二、screen的使用
1.安装
pip install screen
conda install screen
2.创建窗口
screen -S window_name
比如创建一个名为test的会话窗口:screen -S test
直接在新的窗口内跑程序,远程断开连接或者关闭终端也不会终止程序(下次进来还能看到运行界面)
3.查看当前所有窗口
screen -ls
#18676:当前会话窗口的pid
#test:窗口名
#Attached:当前所处的窗口
#Detached:存活但未在使用
![](https://i-blog.csdnimg.cn/blog_migrate/38e165bdc8e68b0c1a14e172d8949d7a.png)
4.退出当前窗口
#使用按键操作退出
windows:ALT + A +D
macos:Control + A + D
![](https://i-blog.csdnimg.cn/blog_migrate/b98321406f5144face043db7ce11da6f.png)
5.进入某个窗口
screen -r xx
#xx使用 窗口id 或 窗口名称 或 id.name进行替换
![](https://i-blog.csdnimg.cn/blog_migrate/22c47e0c6c419a0cd6957c585561d001.png)
6.删除窗口
1.
在所要删除的窗口内输入:exit
2.
screen -S id(or name or id.name) -X quit
3.
screen -X -S id(or name or id.name) quit
![](https://i-blog.csdnimg.cn/blog_migrate/e80e445a92a0690ae0a9b47bd30b6575.png)
7.wipe窗口
当服务器重启时,所有的screen窗口均会dead掉,因此需要使用以下命令删除:
screen -wipe