在 FreeBSD 上保持守护进程运行

在 FreeBSD 上保持守护进程运行

请注意,这是一个自由BSD问题而不是 Linux 问题。请不要回答在 Linux 上如何完成或systemd任何其他问题。

我遇到了崩溃的情况memcached。这不是那么可重复的,我最终会弄清楚的。与此同时,我需要确保它memcached正在运行。如果不是,我需要重新启动它。它通过安装pkg并通过启动/usr/local/etc/rc.d/memcached。有几个选择。

  1. 我可以编写一个看门狗脚本,并每隔 10 分钟或通过cron.有点丑,但可以用。这里最重要的是我需要去写那个脚本。调用service memcached status,评估结果,也许调用service memcached start。我知道怎么写,但看起来很笨拙。我宁愿只使用已经存在的机制。
  2. 我可以写一个do ... until循环脚本。然后我就可以修改了/usr/local/etc/rc.d/memcached。但我想保持软件包安装的文件保持原始状态。我不想每次升级软件包时都使更改永久化。
  3. 我将一个脚本放入/usr/local/etc/periodic.d/hourly并由periodic(8).

是否有一些我没有想到的简单的 FreeBSD 原生机制来保持进程运行?或者我只是想太多了,我应该写我的 8 行脚本并开始调用它cron

答案1

你正在寻找的东西叫做导师。我不认为 FreeBSD 附带了一个开箱即用的软件。但在港口也有一些。至少我明白了;

我建议监督。安装该包并将节添加到/usr/local/etc/supervisord.conf

[program:memcached]
command=/usr/local/etc/rc.d/memcached

要在启动时运行supervisord,请编辑/etc/rc.conf/etc/rc.conf.local使用以下行

supervisord_enable="YES"

无论您选择哪个主管,请确保禁用memcached.

答案2

daemon(1)您可以使用该标志来重新启动-r。简单得多,恕我直言。顺便说一句,我维护 memcached 端口,所以我也许可以帮助解决 memcached 崩溃问题,如果您愿意,请告诉我详细信息。

相关内容