Blog Archive

Thursday, November 21, 2013

CentOS 6, 64bit, Heartbeat and a missing binary

While installing heartbeat on two virtual CentOS 6.4 64bit machines I ran across a weird error:

service heartbeat start

did not return anything. Exit code was 0 and not a single line of output. Weird?


bash -x /etc/init.d/heartbeat

showed that the script exited with code 0 after this line

[ -x /usr/libexec/heartbeat/heartbeat ]

Which turned out to be the following line in the script:

[-x $HA_BIN/heartbeat ] || exit 0

Looking up the file manually showed it wasn't there (which was weird again because I installed heartbeat using yum and I find yum to be rather reliable). So the heartbeat binary was missing. After googling for a few minutes I ran across this GitHub issue mentioning that

The heatbeat init script expects the heartbeat binary resides in $HA_BIN/heartbeat (/usr/lib64/heartbeat/heatbeat) but it now tries to look /usr/libexec/heartbeat/heartbeat and fails.

Looking up the file /usr/lib64/heartbeat/heartbeat showed: yes, here it was. Adding a symlink to /usr/libexec/heartbeat/heartbeat like suggested at

ln -s /usr/lib64/heartbeat/heartbeat \

Fortunately this fixed the issue and my heartbeat cluster is up and running since then.

Special thanks to
@kskmori and @joelgriffiths on GitHub
as well as the team of heartbeat and Linux HA, of course.


  1. Hi,
    thx for the article. I prefer define HA_BIN correctly, instead of mixing lib64 and libexec dirs:
    echo "HA_BIN=/usr/lib64/heartbeat" >> /etc/sysconfig/heartbeat
    sad it's now working OOTB

    1. I meant "sad it's NOT working OOTB"

    2. Hi there,

      Thank you very much for your comment. I understand your point but at the time writing I was too happy to get it working than thinking about mixing lib63 and libexec.

      Thank you,