Today, I came across the strangest problem I’d ever seen in years of administering
sendmail is very much set-and-forget, taking care of emails without any problems. Obviously, today wasn’t normal.
No, not at all. The server had
sendmail installed, and properly configured, but wouldn’t send any emails. It’s as if it wasn’t even running.
ps -fea | grep sendmail
sendmail. So, let’s start
sendmail and check again.
/sbin/service sendmail start
Uh oh. The usual start up messages didn’t appear. Checking if
sendmail was running again showed 0
After looking through
/var/log/message and finding nothing about
sendmail anywhere, as well as a stubbornly empty
/var/log/maillog, I decided the
sendmail binary must be corrupt so issued
yum reinstall sendmail
yum downloaded and installed the new RPM, I was sure that
sendmail would start right up without any problems. I start the service and… nothing happens.
Out of frustration, I decided to run
sendmail on the terminal and see where it was failing.
[root@server ~]$ /usr/sbin/sendmail
bash: /usr/sbin/sendmail: No such file or directory
Well, that couldn’t be right.
bash had even auto-completed that for me.
sendmail had to be installed, as all the other files where there. Wait a minute….
[root@server ~]$ ls -l /usr/sbin/sendmail
lrwxrwxrwx 1 root root 21 May 30 11:51 /usr/sbin/sendmail -> /etc/alternatives/mta
Most modern servers include
alternatives to help manage different programs that provide the same feature. This is accomplished through the
/etc/alternatives directory that has symlinks to the actual binaries, as well as
/var/lib/alternatives to configure the entire system, which is managed by
The only problem on the server turned out to be a broken link,
/etc/alternatives/mta, which was pointing to a nonexistant
qmail installation. The entire problem was fixed by issuing
/usr/sbin/alternatives --set mta /usr/sbin/sendmail.sendmail
I wasn’t happy with this, as it wasn’t “autoconfigured” by
alternatives automatically, so I copied
/var/lib/alternatives/mta from an identical server that only has sendmail running and ran
/usr/sbin/alternatives --auto mta
alternatives properly detected
sendmail, fixed the symlinks in
sendmail successfully launched.