我使用Raspberry PI来自动化我的设备。我需要在Raspberry上使用我的控制台应用程序(用c ++编写)才能在没有人的情况下工作多年。所以我设置了每天重启的看门狗,并在自动运行中运行我的应用程序。
但我的应用可能会崩溃。我无法揭示原因,需要快速重启。什么方式最好?也许我可以写一个"父" -app,并将我作为一个线程调用它,并控制它的工作(但它也可能崩溃)?或者也许有一个现有的守护进程来做到这一点?或者也许有人知道,如何编写Phyton应用程序来执行此操作,并在启动时运行它?
答案 0 :(得分:0)
不一定回答这个问题,但我认为更好的方法是使用经过测试的实用程序,例如" cron"安排每日重启。
答案 1 :(得分:0)
如果程序容易崩溃,保持程序运行很容易,只需使用shell脚本:
while true; do /bin/my_app; done
但是,如果应用程序在某种程度上无法关闭进程,那么整个方法将没有任何帮助。这种情况下的常见方法是为应用程序提供可以探测的一些外部访问点(例如,HTTP服务器)。然后,其他一些过程会定期执行探测,如果程序没有及时响应,则会终止该程序。有一些非常复杂的框架用于此类事情,但同样,这种类型的简单功能可以使用shell脚本实现。