![我可以在 Ctrl+C 之后恢复 make 吗?](https://linux22.com/image/67637/%E6%88%91%E5%8F%AF%E4%BB%A5%E5%9C%A8%20Ctrl%2BC%20%E4%B9%8B%E5%90%8E%E6%81%A2%E5%A4%8D%20make%20%E5%90%97%EF%BC%9F.png)
我正在超级计算机集群上安装 gcc 5.1 版。我配置了它,现在正在运行 make 命令。它已经过去了几个小时并且仍在运行,因为它是一个漫长的安装,但工作日现在已经结束,我必须离开。如果我使用Ctrl+C退出make,如果我明天早上重新运行make,它会从中断处恢复吗?还是必须重新开始?如果我中断 make 会导致问题或错误吗?
答案1
当您按Ctrl+时C,终端中运行的进程(从技术上讲,进程组)将被终止。你无法复活它。您所能做的就是再次运行它。
运行make
涉及很多步骤,每个步骤编译一个文件,或链接一些文件,或运行一个测试等。当您按Ctrl+时C,当前步骤被取消,但之前所有步骤的数据仍然存在。 make 实用程序旨在快速找出哪些步骤已经执行并且不需要再次执行。因此,如果您再次运行make
,它会在短时间内(对于大型项目可能是几秒钟)分析情况并从中断处恢复。
如果机器晚上没有重新启动,即使您晚上注销,您也可以继续在其上运行命令。启动终端多路复用器,例如屏幕或者多路复用器。例如,从终端运行
screen
这将在您的终端中打开一个新的 shell。在这里,切换到相关目录并输入make
.然后按Ctrl+脱离屏幕会话A d。您返回到原来的 shell 提示符,但屏幕内的命令仍在运行。您可以注销、重新登录并通过运行以下命令重新连接到仍在运行的屏幕会话
screen -rd