screen 的作用:
- 远程连接跑实验时,如果没有 screen,当一不小心断网,中断连接后,进程会直接被杀死,这时候实验就会中断。使用 screen, 即使断开连接,进程也会在运行。
显示当前存在的 session: screen -ls(其中 screen 前的数字,即为与此 screen 绑定的进程号)
生成一个 session: screen -R name
恢复进入一个 session: screen -r name
恢复进入(显示 attached) session: screen -D -r name # https://www.cnblogs.com/tyche116/p/11940119.html
退出 screen: CTRL + A + D
删去 screen 并退出:在 session 中输入 exit + 回车
在screen外删去screen: 直接使用 kill + pid (进程号)
对于显示 attached 的 screen, 说明当前存在某一个其他窗口打开了这个进程。
如果使用 screen -D -r name
进入此进程,会导致其他窗口的这个进程自动被 kill 掉。
例如,用 vs code 打开 screen 进程,然后再在 xshell 强行进入此进程,会导致 vs code 下的进程关闭。
跑实验时 screen 的高效用法:
假设要跑 3个实验,设单块显卡内存足够大,可以同时并行跑 3个实验,不需要串行挂起来跑。
那么可以开 3 个 screen: screen1, screen2, screen3, 分别在这 3个 screen 中跑一组实验。