如何在 Ubuntu 上守护服务器?

如何在 Ubuntu 上守护服务器?

我的 Ubuntu 上有几个服务器需要进行防重启守护进程。如何使用通用 init first 进程来实现这一点?我应该换成 upstart 还是其他替代品?

答案1

现有的系统初始化系统会很好地为您处理这个问题。 Ubuntu 有文档他们用这些做什么。是的,他们正在转向暴发户

答案2

如果你的程序在前台运行,我建议运行,这是前面提到的守护进程工具,也是 Sys-V 风格 init 的替代品。在 Ubuntu 上,Runit 以软件包形式提供,并具有由 Upstart 在系统启动时启动所需的脚本。

我们对所有非系统安装的软件包(如 Rails 应用程序)使用 Runit,因此我们不必管理 init 脚本;我们只需在相应的“运行”脚本中弹出启动命令,然后放手即可。这简化了需要在启动时启动的任意新程序的部署,并且是一个非常强大和可靠的系统,无需管理 PID 和锁文件,因为 Runit 会处理这些。

答案3

守护进程工具对于这种事情来说绝对很棒。KISS 级的简单、强大,并鼓励在相关领域(日志记录等)进行良好的实践。

答案4

守护进程:www.clapper.org/software/daemonize/ 可以通过将您的代码包装在执行前进行守护进程的 C 包装器中来处理这个问题。

您也可以简单地将它们添加到 /etc/inittab 中。很多人会(也许是正确的)说这是邪恶的,因为没有人会想到去那里看,我见过使用这种技术的生产系统,事实是它工作得很好。

也许您也可以研究一下 monit,它可以确保进程正在运行,并在必要时重新启动它们。但它是在考虑 Linux-HA 环境的情况下构建的。

通常我会为每个新进程手动创建一个新的 init 脚本,但我通常不会这样一次部署 4 或 5 个脚本。也许可以考虑一下它们的结构,并将它们放在一个 init 脚本下,这是它们提供的服务。

相关内容