新手问题,抱歉 - 我一直在谷歌搜索“重启 ubuntu 时自动启动”之类的内容,但我不确定我是否找到了明确的答案。
我正在使用 Ubuntu 10.04,我想确保每当服务器重启时心跳都会自动启动。
目前我正在手动运行以下命令:
$ /etc/init.d/heartbeat start
我如何确保每次服务器重启时都会调用这个函数?
我谷歌搜索到的一个答案建议:
$ update-rc.d heartbeat defaults
就可以了 - 对吗?
答案1
类型
update-rc.d heartbeat defaults
重启后它将自动启动
如果你想关闭它,请输入'update-rc.d -f heartbeat remove'
答案2
应该可以。基本上,启动过程实际上不会查看 /etc/init.d,而是查看 /etc/rc2.d(或任何定义为启动运行级别的文件)。/etc/rc2.d 中的文件应该是 /etc/init.d 中文件的符号链接:
$ ls -l /etc/rc2.d
total 4
lrwxrwxrwx 1 root root 14 Sep 19 14:13 K16nsca -> ../init.d/nsca
-rw-r--r-- 1 root root 677 Mar 30 2011 README
lrwxrwxrwx 1 root root 19 Aug 15 17:30 S10syslog-ng -> ../init.d/syslog-ng
lrwxrwxrwx 1 root root 23 Jul 6 20:18 S20chef-expander -> ../init.d/chef-expander
lrwxrwxrwx 1 root root 19 Jun 30 19:46 S20chef-solr -> ../init.d/chef-solr
lrwxrwxrwx 1 root root 17 Jun 30 19:46 S20couchdb -> ../init.d/couchdb
lrwxrwxrwx 1 root root 20 Jul 22 16:20 S20fancontrol -> ../init.d/fancontrol
lrwxrwxrwx 1 root root 15 Jun 30 19:46 S20jetty -> ../init.d/jetty
lrwxrwxrwx 1 root root 28 Jul 22 16:20 S20nagios-nrpe-server -> ../init.d/nagios-nrpe-server
等等。
为了使 Heartbeat 在启动时启动,它应该有一个类似的符号链接。
您可以手动创建这些链接,但 Ubuntu 使用 update-rc.d 命令来管理这些符号链接,因此您不必这样做。
由于 /etc/rc2.d 目录是 root 拥有并获得权限的,因此您需要实际运行:
$ sudo update-rc.d heartbeat defaults
以超级用户权限运行该命令。运行时,它应该会向您显示它将创建的一组符号链接。除了 /etc/rc2.d 中的链接外,它还应该在其他 /etc/rc?.d 目录中放置类似的链接,包括 /etc/rc6.d 中的链接(例如),以便在机器关闭时关闭服务。
答案3
尝试再次运行脚本,有些脚本只是说它们已启动,根本没有抱怨。另外,如果我没有弄错的话,你正在做的是说运行这个脚本心跳,但你没有给脚本任何参数。(如果我理解正确的话这一页正确)
您可以做的是创建一个名为 foo 的脚本:
/etc/init.d/heartbeat start
使用 chmod +x 使其可执行
然后运行命令 update-rc.d foo defaults
它将在启动时运行 foo 脚本中的所有命令。