自动重新运行,Linux

自动重新运行,Linux,linux,ubuntu,Linux,Ubuntu,如果我的软件因为错误而中止,有没有办法让我的Ubuntu立即重新打开它?我使用的是g++sample.cpp-o sample 和 /样品 但如果它崩溃了,对我来说真的是个问题。解决办法是什么?谢谢。简单的解决方案就是在程序每次完成执行时创建一个shell脚本来启动程序 例如: #!/bin/bash while true do ./sample done 您可能希望在每次示例完成执行时保存一个日志文件或程序输出。简单的解决方案就是在程序每次完成执行时创建一个shell脚本来启动程序

如果我的软件因为错误而中止,有没有办法让我的Ubuntu立即重新打开它?我使用的是g++sample.cpp-o sample 和 /样品


但如果它崩溃了,对我来说真的是个问题。解决办法是什么?谢谢。

简单的解决方案就是在程序每次完成执行时创建一个shell脚本来启动程序

例如:

#!/bin/bash
while true
do
    ./sample
done

您可能希望在每次示例完成执行时保存一个日志文件或程序输出。

简单的解决方案就是在程序每次完成执行时创建一个shell脚本来启动程序

例如:

#!/bin/bash
while true
do
    ./sample
done
每次示例完成执行时,您可能希望保存一个日志文件或程序输出。

一个简单的bash脚本

#! /bin/bash

until ./my_app; do
    sleep 2 # To prevent insanity
done
一个简单的bash脚本

#! /bin/bash

until ./my_app; do
    sleep 2 # To prevent insanity
done

另一种方法是有一个主守护进程,它可以从要监视的程序中获取频繁的心跳,并且在没有收到心跳时,启动正在观看的节目。

另一种方法是让主守护进程从您想要监视的节目中获取频繁的心跳,当没有收到心跳时,启动正在观看的节目。

很难说您所追求的可能是过度杀戮,但是可能会有所帮助-比简单的while更高级,功能更丰富(1)

很难说,对于您所追求的可能有些过分,但是可能会有所帮助-比简单的while更高级,功能更丰富(1)

比公认的答案更好,因为它使程序能够自动退出。我正在使用ubuntu并这样做root@monstenation:~# !/bin/bash-bash:/bin/bash:event not found这是为什么?比公认的答案要好,因为它使程序能够自动退出。我正在使用ubuntu并这样做root@monstenation:~# !/bin/bash-bash:/bin/bash:event not found这是为什么?天哪(没有双关语的意思,但是…),这是一个非常糟糕的系统-它没有重写整个shell(可能会做shell不能做的事情)。是的,我确实说过这可能有点过火;)天哪(不是有意的双关语,但是…),这是一个很好的系统——它没有重写整个shell(可能会做shell不能做的事情)。是的,我确实说过这可能有点过火;)这个(以及其他一些解决方案)可能存在的一个问题是,如果每次启动程序时出现错误,导致程序快速崩溃,那么您将多次运行它。您可以考虑将<代码>睡眠<代码>添加到循环中。我使用Ubuntu并这样做。root@monstenation:~# !/bin/bash-bash:/bin/bash:未找到事件为什么?将内容保存到脚本中,例如
foo.sh
。然后使用
chmod+xfoo.sh
使其可执行。然后像这样执行:
/foo.sh
。或者,您可以在bash提示符下输入每一行,只保留第一行(尽管如果计划再次运行它,您可能应该将其保存为脚本)。这可能存在的一个问题(以及其他一些解决方案)是,如果每次启动程序时出现错误,导致程序快速崩溃,您将运行它很多次。您可以考虑将<代码>睡眠<代码>添加到循环中。我使用Ubuntu并这样做。root@monstenation:~# !/bin/bash-bash:/bin/bash:未找到事件为什么?将内容保存到脚本中,例如
foo.sh
。然后使用
chmod+xfoo.sh
使其可执行。然后像这样执行:
/foo.sh
。或者,您可以在bash提示符下输入每一行,只保留第一行(尽管如果计划再次运行它,您可能应该将其保存为脚本)。