如何重新启动由于“管道损坏”而失败的后台作业

如何重新启动由于“管道损坏”而失败的后台作业

我有一个正在运行的后台进程,其命令以“nohup Nice”开头。由于通常需要 20 个小时,所以我让它在晚上运行。然而,今天早上我收到一条消息说“写入失败:管道损坏”,可能是因为服务器关闭了空闲时间太长的连接。当我再次登录服务器时,输入“jobs”命令时没有作业。如何从程序剩余的位置重新启动程序,而不是从头开始运行?

答案1

这取决于您在哪里看到该消息。如果您通过 ssh 连接到服务器并在本地终端上看到了这一点,那就没问题。该进程可能仍在远程服务器上正常运行。您不会看到它,jobs因为jobs只显示当前 shell 会话中运行的进程。如果您重新连接到服务器,您将开始一个新会话,因此jobs没有帮助。尝试运行ps aux | grep ProcessName以检查它是否仍在运行。

如果您在输出文件中或输出文件中看到此消息nohup.out,则您看不到。除非它是一个以某种方式支持恢复的过程。该错误意味着进程已停止。既然已经停止了,那就消失了,没有办法恢复了。

例如,如果这是读取输入文件并生成输出,您可以尝试找出它何时停止并再次运行它,仅将剩余的行作为输入。不过,没有任何技巧可以让它神奇地重新启动,因为没有它何时停止的记录。

相关内容