postfix startup nach Debian stretch update

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
Benutzeravatar
simmeone
Beiträge: 112
Registriert: 01.04.2005 14:38:08
Wohnort: localhost

postfix startup nach Debian stretch update

Beitrag von simmeone » 09.10.2017 11:13:50

Heute gab es ein Update von Debian, unter anderem war davon auch postfix betroffen. Nach einem Reboot stand mein SMTP-Server nicht mehr zur Verfügung. Als ich auf der Konsole service --status-all eintippte, zeigte mir mein System an, daß alle Dienste hochgefahren sind. Im mail-Log stand allerdings, das localhost alle Anfragen an den SMTP-Server zurückgewiesen hat. 8O Also habe ich noch ein postfix status abgerufen und dort stand, daß postfix nicht gestartet sei. Siehe log:

Code: Alles auswählen

# postfix status
postfix/postfix-script: the Postfix mail system is not running
# service postfix status
● postfix.service - Postfix Mail Transport Agent
   Loaded: loaded (/lib/systemd/system/postfix.service; enabled; vendor preset: enabled)
   Active: active (exited) since Mon 2017-10-09 10:42:32 CEST; 32s ago
  Process: 416 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
 Main PID: 416 (code=exited, status=0/SUCCESS)
    Tasks: 0 (limit: 4915)
   CGroup: /system.slice/postfix.service

Oct 09 10:42:32 ... systemd[1]: Starting Postfix Mail Transport Agent...
Oct 09 10:42:32 ... systemd[1]: Started Postfix Mail Transport Agent.
Hat jemand ein Tip, woran das liegt? Wenn ich die Linux-Kiste jetzt neu starte, wird der postfix nicht mit hochgefahren, service ist der Meinung, der Server wäre oben, aber er ist es nicht. Woher kommt diese Diskrepanz? Danke für jeden Hinweis.

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: postfix startup nach Debian stretch update

Beitrag von scientific » 09.10.2017 11:55:26

Code: Alles auswählen

 ExecStart = /bin/true
Da wird kein Service gestartet!
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
simmeone
Beiträge: 112
Registriert: 01.04.2005 14:38:08
Wohnort: localhost

Re: postfix startup nach Debian stretch update

Beitrag von simmeone » 09.10.2017 12:02:39

Ooooops! Ok, wie kann ich das fixen? Weiß jemand, welches Skript dort daneben haut?
In meinem /lib/systemd/system/ Verzeichnis existieren zwei postfix.service Dateien.

* postfix.service 253kb
* postfix@.service 516

In letzterem steht unter anderem sowas drin

Code: Alles auswählen

[Service]
Type=forking
GuessMainPID=no
ExecStartPre=/usr/lib/postfix/configure-instance.sh %i
ExecStart=/usr/sbin/postmulti -i %i -p start
ExecStop=/usr/sbin/postmulti -i %i -p stop
ExecReload=/usr/sbin/postmulti -i %i -p reload
Ist das die richtige Datei, umbenennen und schick ist?

PS: ich habe einen Blick in die original deb-Datei geworfen, dort steht in der postfix.service genau das Gleiche wie bei mir drin -> /bin/true - irgendwas anderes hat es mit dem Update zermurkst. Hat niemand das Problem nach dem Update? :?

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: postfix startup nach Debian stretch update

Beitrag von scientific » 09.10.2017 18:38:02

Ich schätz mal, postfix.service wird noch drin sein, um keinen Fehler zu produzieren.

postfix@.service wird ziemlich sicher von postfix.socket aufgerufen. Gibts diese Datei? Was steht drinnen?

Und poste bitte die GESAMTE postfix@.service
Am besten mit

Code: Alles auswählen

 systemctl cat postfix@.service
Lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
simmeone
Beiträge: 112
Registriert: 01.04.2005 14:38:08
Wohnort: localhost

Re: postfix startup nach Debian stretch update

Beitrag von simmeone » 09.10.2017 19:24:02

Folgendes steht drin:

Code: Alles auswählen

# /lib/systemd/system/postfix@.service
[Unit]
Description=Postfix Mail Transport Agent (instance %i)
Documentation=man:postfix(1)
PartOf=postfix.service
Before=postfix.service
ReloadPropagatedFrom=postfix.service
After=network-online.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
GuessMainPID=no
ExecStartPre=/usr/lib/postfix/configure-instance.sh %i
ExecStart=/usr/sbin/postmulti -i %i -p start
ExecStop=/usr/sbin/postmulti -i %i -p stop
ExecReload=/usr/sbin/postmulti -i %i -p reload

[Install]
WantedBy=multi-user.target
Ich habe gerade apt-get remove --purge postfix ausgeführt, dachte, eventuell irgendwas beim upgrade schief gegangen. Neue Installation, Konfig-Dateien wieder rin, gestartet -> tut. Server neu gebootet, postfix wurde wieder nicht hochgefahren, händiges starten funktioniert - hmpf!

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: postfix startup nach Debian stretch update

Beitrag von scientific » 09.10.2017 19:58:04

Was verlangt postmulti für ein Argument bei der Option -i ?

Ich hab das nicht installiert... Aber ich vermute mal ein Netzwerkinterface... Z. B. eth0, oder die neue Bezeichnung mit enp...

Code: Alles auswählen

 ip addr
gibt über den korrekten Namen Auskunft.

Wenn dem so ist, musst du den Service mit

Code: Alles auswählen

 systemctl enable postfix@eth0.service
aktivieren. Alles zwischen postfix@ und. service wird als Argument für -i an postmulti übergeben.

Dann reboote am besten und kontrolliere ob postfix@eth0.service und postfix.service läuft.

Ich find die Lösung mit einem Servicefile statt einem target spannend... Muss mir das mal näher ansehen.

Lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
simmeone
Beiträge: 112
Registriert: 01.04.2005 14:38:08
Wohnort: localhost

Re: postfix startup nach Debian stretch update

Beitrag von simmeone » 09.10.2017 20:11:42

postfixmulti ist dazu da, mehrere Instanzen von postfix auf einer Kiste laufen zu lassen. Habe das mal zum Testen aktiviert, brachte gar nichts, postfix startet im Moment nicht automatisch. Muß es z.Z. per Hand starte, was ungemein nervt. Danke für die Hinweise :)

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: postfix startup nach Debian stretch update

Beitrag von scientific » 09.10.2017 20:21:11

Naja... Die Units sind so gestaltet, dass du eine oder 100 instanzen mit der selben unit aktivieren kannst.

Probier mal

Code: Alles auswählen

 systemctl enable postfix@-.service
systemctl start postfix@-.service
-i ist ein Name für eine postfix config. "-" steht für die primäre, wie ich grad der manpage entnehmen konnte.

Bin mir nur grad nicht sicher, ob - escaped gehört oder nicht. Sitz nicht am Rechner ums auszuprobieren.
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
simmeone
Beiträge: 112
Registriert: 01.04.2005 14:38:08
Wohnort: localhost

Re: postfix startup nach Debian stretch update

Beitrag von simmeone » 09.10.2017 20:33:01

Woooohoooo! Schau an, guck an... Mit

Code: Alles auswählen

systemctl enable postfix@-.service
systemctl start postfix@-.service
funktioniert es nun. Der Knüller, ich danke Dir für Deine Hilfe!

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: postfix startup nach Debian stretch update

Beitrag von scientific » 09.10.2017 22:59:26

Das ist gut so :)

Noch ein Tipp. Mit

Code: Alles auswählen

systemctl reload postfix.service
kannst du "alle" deine Postfix-Instanzen neu laden. In deinem Fall ist es bloß eine. Aber wenn du 20 laufen hast, funktioniert der Reload genau so mit diesem einen einzigen Befehl.

Wenn du deine(n) Postfix stoppen möchtest, dann mach

Code: Alles auswählen

systemctl stop postfix.service
. Und erneut starten kannst du deinen Postfix auch über

Code: Alles auswählen

systemctl start postfix.service
.

Das machen die Abhängigkeiten in postfix@.service, dass du start, stop und reload über postfix.service für alle gemeinsam erledigen kannst.
Willkommen in der Welt von systemd. :)

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Antworten