It should. Basically, the startup process doesn't actually look in /etc/init.d, it looks in /etc/rc2.d (or whatever is defined as the startup run level). The files in /etc/rc2.d should be symlinks to files in /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
and so on.
For Heartbeat to start up on boot, it should have a symlink along those lines.
You can create these links manually, but Ubuntu uses the update-rc.d command to manage those symlinks, so you don't have to.
Since the /etc/rc2.d directory is root-owned and permissioned, you will need to actually run:
$ sudo update-rc.d heartbeat defaults
to run the command with superuser permissions. When it runs, it should show you the set of symlinks it will create. In addition to the one in /etc/rc2.d, it should put similar links in the other /etc/rc?.d directories, including links in /etc/rc6.d (for example) to shut down the service as the box shuts down.
update-rc.d heartbeat defaults
saysSystem start/stop links for /etc/init.d/heartbeat already exist
. But then when I reboot and run/etc/init.d/heartbeat start
it starts happily without saying it's already running. So I'm confused.ps axu | grep [h]earbeat
if you see something likeroot 3024 0.0 0.1 12222 12222 ? SLs Nov24 0:08 heartbeat: master control process nobody 3069 0.0 0.0 5672 5668 ? SL Nov24 0:00 heartbeat: FIFO reader nobody 3100 0.0 0.0 5668 5664 ? SL Nov24 0:00 heartbeat: write: bcast eth1 nobody 3101 0.0 0.0 5668 5664 ? SL Nov24 0:15 heartbeat: read: bcast eth1
that means that hearbeat is running, you can tryservice heartbeat status
after restart` alsosysv-rc-conf
to create the required links to the needed runlevels.