sysvinit Postfix-Startskript - wird nur mit dem Argument "Status" aufgerufen

684
Klaus

Ich habe ein Problem mit Postfix, das beim Booten nicht gestartet wird. boot.log zeigt keinerlei Informationen an. Das anschließende Starten des Postfix-Dienstes funktioniert wie erwartet.

Ich habe dem Startskript Debug-Informationen hinzugefügt. Folgende Zeilen wurden hinzugefügt:

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

Dies gab mir die Information, dass das Skript nie mit dem Argument "Start" aufgerufen wurde. Er wird beim Start nur zweimal mit dem Argument "Status" aufgerufen, wodurch der Dienst nie wirklich gestartet wird.

Mein System ist das Folgende:

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

Wie ich bereits gesagt habe, das Starten des Dienstes mit service postfix startoder invoke-rc.d postfix startfunktioniert, aber ich brauche Postfix, um beim Booten zu starten.

Runlevels wurden hinzugefügt mit 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 

Ich habe auch versucht, zu entfernen ( update-rc.d -f postfix remove) und es hinzuzufügen. Ich bin wirklich neugierig, warum der Dienst beim Start nicht mit dem Argument "start" aufgerufen wird. Ich vermute, dass dies hier das Problem ist, aber ich habe keine Ahnung, wie es gelöst werden soll.

Jede Hilfe wäre sehr dankbar! Ich habe schon Stunden damit verschwendet.

EDIT: Ich habe auch ps -faxumeine Debug-Nachrichten hinzugefügt und herausgefunden, dass dieser Status von der resolvconf aufgerufen wird. Das Problem ist eigentlich, dass das Postfix-Init-Skript beim Start niemals ausgeführt wird.

0

1 Antwort auf die Frage

0
Klaus

Das Problem war ein benutzerdefiniertes Init-Skript, das vor dem Postfix-Init-Skript ausgeführt wurde, das niemals beendet wurde.

Noch bessere Debug-Zeilen, die mir einen besseren Einblick in das Geschehen gaben:

# 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 

Was mir schließlich den letzten Hinweis gab, war, dass nach dem benutzerdefinierten Skript keine anderen Skripts ausgeführt wurden, wie in der boot.log angegeben