Mac 版进程监控器

Mac 版进程监控器

我正在寻找某个我确信存在的东西,但我找不到它。

我有一个长时间运行的程序(Matlab 模拟),它在办公室的 Mac 上运行了 24 小时或更长时间。有时程序会崩溃,所以我正在寻找一个程序或命令,可以定期检查以确保进程仍在运行,如果没有运行,请向我发送电子邮件,以便我可以远程登录并重新启动程序/解决问题。

越用户友好越好,因为我希望非高级用户能够自己使用它。

答案1

我已经有一段时间没有使用过 Matlab 了,但据我了解MathWorks 支持,如果你的代码崩溃了,你会matlab_crash_dump.XXXX在你的主文件夹中得到一个文件,其中XXXX是一个数字。然后你可以使用检测该文件的添加,然后使用 Automator 工作流程向您发送电子邮件。

我本来想测试一下这个但目前还没有任何会导致 Matlab 崩溃的东西。

答案2

你可以用一个简单的脚本来实现这一点。任何你熟悉的脚本都可以,无论是 bash、ruby、applescript 还是其他什么。

我在 cron 作业上设置了一个 bash 脚本,它会检查 Teamspeak 服务器是否正在运行,如果没有,则启动它。

答案3

如果你想让某个进程保持运行(或者,如果进程退出,重新启动它),请使用launchd。这里有一个让 TextEdit 保持运行的方法这里, 和林贡可以作为 GUI 来设置它。

但这并不能完美解决你的特定问题 -launchd它将重新启动你的进程每当它会退出,无论成功与否。如果您的程序要覆盖上次运行的完美输出,这可能会非常麻烦。为了解决这个问题,您可以将程序包装在一个脚本中(shell 脚本就可以),该脚本将运行该程序,然后,如果成功,则launchd在退出之前删除该作业。例如:

#!/bin/bash

/my/matlab/program
#$? is the exit value of your program - convention is 0 for success, non-zero otherwise
if [ $? = 0 ]
    launchd unload keep.my.matlab.running
fi

[编辑]

如果 Matlab 按照 fideli 的建议生成输出,则可以使用文件夹操作在 Matlab 将其错误报告放入的文件夹中。只需编写一个 Applescript 或 Automator 工作流,获取已添加的文件,检查它们是否是 Matlab 错误,如果是,则向您发送电子邮件。其中一个内置功能称为“新项目警报”,可能是某些基因修改的良好起点。

相关内容