夏期劇*_*期劇場 27 linux services reboot daemon
实际上,我不太确定是否应该使用 Shell 脚本,或者是否已经有一些方法。但是无论我们使用什么方法,我都希望服务一直运行。
比方说,iptables
作为一个例子。然后 ..
iptables
服务stopped
或(换句话说)没有运行,我希望它是started
(或restarted
)..自动无论何时停止(或不运行)。(也许我可以给出一个公平的频率来检查,如果进行实时检查是问题。所以可以说,每 5 分钟一次)
我能想到的唯一方法是在 Cron Tab 中使用 Shell 脚本。
谢谢!
Ale*_*bes 28
2018 年 3 月更新
这个答案现在已经很老了,自从它被编写以来,systemd 在 Linux 上赢得了 pid1 战争。因此,您可能应该创建一个systemd单元,如果 systemd 内置在您的发行版中(大多数都是)。
下面的答案为后人保留。
上面的 monit 答案是有效的,但我想我会提到一些替代方案:
值得记住的是,您的操作系统已经解决了进程管理问题。传统上,Linux 使用 sysvinit,它基本上是您在 init.d 中看到的脚本的集合。然而,它非常愚蠢,不能监控进程,init.d 脚本很复杂,它被替换是有充分理由的。
更现代的操作系统开始取代 sysvinit,领跑者是 Upstart 和 Systemd。Debian 倾向于 systemd,Ubuntu 已经开发并且几乎已经过渡到 Upstart,并且像 Debian Redhat/CentOS/Fedora 一样正在转向 systemd。因此,如果您使用的操作系统已经取代了 sysvinit,我建议您使用内置的操作系统。脚本比初始化脚本更容易编写。
我使用过 runit 并且非常喜欢它,但最容易使用的是 supervisor。它也有很好的文档记录,几乎可以在任何地方使用,并且打包在所有主要发行版中。
但无论你做什么,拜托,拜托,请不要使用shell脚本。这种方法有很多问题!
归档时间: |
|
查看次数: |
93756 次 |
最近记录: |