screen 命令和 shell 脚本基础

问题背景

如果你要运行一个时间很长的 job 你会怎么办?这个问题可以转变为当一个任务运行时间非常长,你如何保证操作系统不自动中断它。答案取决与运行环境,如果是台式机 + windows 的桌面系统就注意一下人离开的时候锁屏,而不要注销用户或者关机即可;而当你使用 Mac 或者远程连接 Linux 的时候要如何处理?我做过一件很傻的事情就是即使要从宿舍走到图书馆也一直把屏幕开着,本想着校园里处处都有 Wi-Fi 应该没事,但连接还是在路上断开了,导致之前的工作必须重新来过。

解决方案

要运行这个 job 之前先建一个 screen:

screen -S [name of your screen]

比如你可以用 screen -S my-screen 创立一个叫”my-screen”的对话,运行你的 job, 然后按下 Ctrl+A, Ctrl+D (先按+A,再按+D). 你就从那个对话中抽身出来,此时命令行会提示一行 “[detached]“,表示这个 job 已经在后台运行了。

你可以通过

screen -list

来得到建立的所有 screen 的列表,如果要回到某个 screen 就使用 screen -r [screen-id] . 这里的 id 能够在 list 中找到

你可能感兴趣的:(Linux)