为什么服务 munin-node 在启动(重启)时不运行?

为什么服务 munin-node 在启动(重启)时不运行?

我有一个运行 Ubuntu Server 版本 10.04 LTS(Lucid Lynx)的 VPS 实例。

我已经安装了 munin 和 munin-node。配置正确。运行良好。

问题是我需要运行命令sudo service munin-node start才能启动它。

如果我重新启动系统(sudo reboot now使用基于 Web 的控制面板或通过 Web 控制面板),此服务不会启动。我需要运行上述命令才能启动它。

我尝试了“一切”方法来排除故障,但都没有成功。

1) 它应该会启动我使用 aptitude 在此 VPS 中安装的许多其他程序(ProFTPd、NginX、MySQL、monit、Icecast、Postfix 和许多其他程序)。但事实并非如此。

2) 我尝试添加service munin-node start,就像/etc/rc.local我成功完成的那样,以启动另一项服务。但它没有启动!

3) 我运行了命令update-rc.d munin-node defaults。听起来一切正常!重启后...它没有启动!

4)我跑去grep -r munin *看了所有与 munin 相关的东西/var/log

在我担任系统管理员的几年里,我从来没有这么一无所知就像这次。

真正令人印象深刻的是,service munin-node start一旦系统启动并运行,一个简单的(或等效的)...服务就会正常启动。

有想法吗?建议吗?

我即将尝试来自另一个问题的提示,如果一切都失败了......

答案1

好吧,我可能还没有找到确切的为什么,但我找到了解决方案。

我修改了/etc/init/munin-node.conf upstart 配置文件,现在 munin-node 会在重启时自动启动,正如我所希望的那样。

我替换了存在的“开始“ 和 ”停止“在 MySQL upstart 配置文件中找到的子句/etc/init/mysql.conf

以下是我修改后的片段/etc/init/munin-node.conf,现在对我有用:

#start on (filesystem and net-device-up IFACE=lo)
#stop on runlevel [!2345]

start on (net-device-up
          and local-filesystems
      and runlevel [2345])
stop on runlevel [016]

我刚刚注释了原来的“start on”和“stop on”行,并从 mysql.conf 中添加了“start on”和“stop on”行。

如果有专家能为我们解释一下这几行字的含义就好了……

谢谢。

答案2

在我看来,启动 munin-node 服务的最佳方式是在 /etc/init/munin-node.conf 中添加如下一行:

start on (net-device-up IFACE!=lo and local-filesystems)

这是因为您需要一个接口(lo 除外)来监听 munin-node,并且还需要安装本地文件系统,以便访问统计数据。

您可以使用运行级别指令,但不建议这样做:

是否使用更通用的“运行级别”或更明确的 local->filesystems(7) 和 net-device-up 事件之间的区别应由您的作业行为决定。如果您的服务在没有有效网络接口的情况下启动(例如,它绑定到 >0.0.0.0,或使用 setsockopt(2) SO_FREEBIND),则运行级别事件是首选,因为您的服务将稍早启动并与其他服务并行启动。

但是如果您的服务由于某种原因需要配置非环回接口(即,如果没有广播功能它就无法启动),那么明确地说“一旦非环回设备启动”就会有所帮助。

来自 Ubuntu upstart cookbook:http://upstart.ubuntu.com/cookbook/#start-on

相关内容