有什么方法可以查看长时间运行的进程 bash 命令是否成功?

有什么方法可以查看长时间运行的进程 bash 命令是否成功?

我有一个长时间运行的解析文本的过程,并且我的笔记本电脑由于被拔掉电源而死机了。

我真的不想不必要地再次运行该过程,因为它需要一天以上的时间,但我需要查看该过程是否在计算机死机之前完成。有什么办法吗?

这是一个 Python 脚本

答案1

通常,如果命令意外关闭,尤其是在断电的情况下,命令将不会返回状态代码。

您能做的最好的事情就是查看输出(文件或其他内容)是否存在。如果存在,则您的流程可能已完成(或部分完成)。如果没有,您将不得不重新启动任务。

如果这是您自己的代码,我强烈建议您将调试器附加到程序中。如果它是其他人的并且是开源的(它是 Python,所以应该是),您可以直接将其添加进去。

答案2

不知道脚本或命令是什么使得我很难回答,但一般规则是:据我所知,如果没有发生足够突出的事情来迫使操作系统记录它,它几乎就丢失了。

良好的软件开发实践包括写作“调试”/var/log/yourscriptname/last.log代码,它将允许程序在某处(文本文件或示例中)留下有关其自身进度的消息。

如果您的脚本包含这样的调试代码,那么这两个链接可能会对您有用:

如果没有找到任何内容,我建议阅读脚本以查看它是否包含调试代码,如果没有,则在Script finished at [time here]需要的地方添加等效内容。

答案3

没有通用的方法来检查系统关闭或死机时某个程序是否正在运行。

根据您的程序,您可能会猜测某些输出文件的修改日期。如果您想确定,您应该重新运行该程序。

如果可能的话,您可以向程序中添加一些日志,以便下次知道它是否正确完成。

相关内容