我想要一个进程,如果它崩溃,它将重新启动。我用谷歌搜索了一下,发现一个简单的解决方案是使用daemontools。
我不明白如何配置它。
ger*_*ijk 30
看来您正在寻找 Ubuntu 中已经提供的功能Upstart。respawn配置中的节将完全满足您的需要。我建议不要使用不太标准的方法来处理这个问题。
如果没有有关您尝试使用它管理的过程的更多详细信息,则很难说配置应该是什么样子。例如,这取决于它是否分叉并将自己置于后台。该respawn节的 Upstart 文档应该为您提供更多信息。
不幸的是,目前还无法正确运行用户作业:无法让暴发户运行用户作业
假设我们要保持计算器应用程序运行,即使它被火烧死(信号 9)。
在/etc/init/calculator.conf(基于本文)中创建配置文件:
#!upstart
description "Calculator"
# Start job via the daemon control script. Replace "gert" with your username.
exec su -l gert -c 'export DISPLAY=:0; /usr/bin/gnome-calculator'
# Restart the process if it dies with a signal
# or exit code not given by the 'normal exit' stanza.
respawn
# Give up if restart occurs 10 times in 90 seconds.
respawn limit 10 90
Run Code Online (Sandbox Code Playgroud)通过运行启动它
sudo start calculator
Run Code Online (Sandbox Code Playgroud)它会在您当前的显示器 ( :0)上打开,并在关闭后看到它重新启动,从而享受美妙的体验。
识别进程 ID,例如通过执行ps aux | grep calculator:
gert 13695 0.2 0.4 349744 16460 ? Sl 13:38 0:00 /usr/bin/gnome-calculator
Run Code Online (Sandbox Code Playgroud)用火杀死它。
sudo kill -9 13695
Run Code Online (Sandbox Code Playgroud)看它重新出现:
gert 16059 4.6 0.4 349736 16448 ? Sl 13:40 0:00 /usr/bin/gnome-calculator
Run Code Online (Sandbox Code Playgroud)请注意,对于具有适当用户作业支持的 Ubuntu 13.04 计划,这将更加优雅。
n s*_*n s 14
一个非常简单的工具,不需要配置就可以达到同样的效果immortal:https : //immortal.run/
只需像这样执行命令:
immortal <cmd>
它将在后台运行并在退出时自动重新启动。
immortalctl:查看正在运行的作业的状态。name此处将打印一列,您可以使用它来引用具有其他控制命令的作业。immortalctl stop <name>: 停止监视给定名称的作业(不会自动重启,但当前进程会继续执行)immortalctl -k <name>: 发送 SIGKILL 到当前进程。immortalctl exit <name>:停止监视具有给定名称的作业并将其从作业列表中删除。| 归档时间: |
|
| 查看次数: |
67854 次 |
| 最近记录: |