sysvinit postfix startup script - only called with "status" argument

0

I'm having a problem with postfix not starting up on boot. boot.log doesn't show any information whatsoever. Starting the postfix service afterwards works as expected.

I added debug information to the startup script. Following lines were added:

exec >> /var/log/postfix-init.log 2>&1
set -x +v
echo SERVICE START INITIATED AT: `date +"%Y-%m-%d_%H:%M:%S"`
echo $@

This gave me the information that the script was never called with the "start" argument. It only gets called twice at startup with the "status" argument, thus never really starting the service.

My system is the following:

root@...:/#lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 12.04.5 LTS
Release:    12.04
Codename:   precise

As I've already said, starting the service with service postfix start or invoke-rc.d postfix start works, but I need postfix to start at boot time.

Runlevels were added with update-rc.d postfix defaults:

# ls /etc/rc*.d/*postfix
/etc/rc0.d/K20postfix  /etc/rc2.d/S20postfix  /etc/rc4.d/S20postfix  /etc/rc6.d/K20postfix
/etc/rc1.d/K20postfix  /etc/rc3.d/S20postfix  /etc/rc5.d/S20postfix

Also I've tried removing (update-rc.d -f postfix remove) and adding it. I'm really curious why the service isn't called with the "start" argument at startup. I'm guessing that this is the issure here, but have no idea on how to solve it.

Any help would be greatly appreciated! I already wasted hours on this.

EDIT: I also added ps -faxu to my debug messages and found out, that status gets called from the resolvconf. So the problem actually is, that the postfix init script never gets executed on startup.

Klaus

Posted 2014-08-29T09:02:30.640

Reputation: 126

Answers

0

The problem was a custom init script that was executed before the postfix init script, which never terminated.

Even better debug lines, that gave me more insight in what was going on:

# remember to set shebang to bin/bash
exec > >(tee -a /var/log/postfix-init.log)
exec 2>&1
set -x +v
echo
echo SERVICE CMD INITIATED AT: `date +"%Y-%m-%d_%H:%M:%S"`
echo $@
ps faxu

But what eventually gave me the final hint was that no other scripts were run after the custom script as stated in the boot.log

Klaus

Posted 2014-08-29T09:02:30.640

Reputation: 126