![关闭终端后是否继续进程?](https://linux22.com/image/1235377/%E5%85%B3%E9%97%AD%E7%BB%88%E7%AB%AF%E5%90%8E%E6%98%AF%E5%90%A6%E7%BB%A7%E7%BB%AD%E8%BF%9B%E7%A8%8B%EF%BC%9F.png)
可能重复:
未登录时让 bash 脚本在远程终端上运行?
最近,我尝试使用 Putty 在远程系统上解压一个 30 GB 的 zip 文件。随着漫长的解压过程继续进行,我关闭了 Putty,以为该过程将继续在远程计算机上运行。
当我稍后回来并再次登录机器时,我意识到当我关闭 Putty 时,该过程肯定只是在中途停止了。我没想到会发生这种情况。
我的问题是,如何避免这个问题?我能以某种方式在后台启动一个进程吗?或者应该只设置一个一次性的 cronjob 来为我运行该进程?
答案1
nohup
或disown
(在 bash 中)将允许进程或作业在控制 shell 被终止后在后台继续。
答案2
您可以使用 gnu screen 运行程序,然后稍后重新连接到会话。只需启动 screen,然后启动解压过程。当您想要断开连接时,请按Ctrl-A D
。然后,当您想要重新连接到 screen 会话时,使用screen -r
,它将重新连接到上一个会话。