[geloest] systemd slapd.service

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
sharbich
Beiträge: 284
Registriert: 27.09.2013 21:12:40

[geloest] systemd slapd.service

Beitrag von sharbich » 22.04.2017 00:31:33

Hallo Ihr Lieben,
kennt sich einer von Euch schon mit systemd aus? Ich suche auf mein Jessie System die "slapd.service" Datei. Ein "systemctl status slapd" gibt mir folgendes aus

Code: Alles auswählen

● slapd.service - LSB: OpenLDAP standalone server (Lightweight Directory Access Protocol)
   Loaded: loaded (/etc/init.d/slapd)
   Active: active (running) since Fr 2017-04-21 23:16:23 CEST; 1h 8min ago
   CGroup: /system.slice/slapd.service
           └─970 /usr/sbin/slapd -h ldap://192.168.20.20:9009/ ldaps:/// ldapi:/// -g openldap -u openldap -F /etc/ldap/slapd.d
Scheint so als würde der slapd Dienst nicht über systemd gesteuert, oder? Mir scheint es so als habe ich eine gemischte Start Umgebung? Unter "/lib/systemd/system/ . . ." finde ich die Datei slapd.service nicht?
Habt Ihr eine Idee warum slapd nicht von systemd gesteuert wird?
Lieben Gruß von Stefan Harbich
Zuletzt geändert von sharbich am 18.02.2021 10:52:20, insgesamt 2-mal geändert.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: systemd slapd.service

Beitrag von rendegast » 22.04.2017 04:20:35

Loaded: loaded (/etc/init.d/slapd)
Unter /run/systemd/generator.../ wird sich eine slapd.service finden,
die /etc/init.d/slapd entsprechend aufruft.




----------------------------
Bis auf Debianlibgudev-1.0-0 lassen sich (bei mir) alle systemd / udev auf 230 jessie-backports upgraden.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

mat6937
Beiträge: 2925
Registriert: 09.12.2014 10:44:00

Re: systemd slapd.service

Beitrag von mat6937 » 22.04.2017 09:03:50

sharbich hat geschrieben: Unter "/lib/systemd/system/ . . ." finde ich die Datei slapd.service nicht?
Habt Ihr eine Idee warum slapd nicht von systemd gesteuert wird?
Siehe auch die Ausgabe von:

Code: Alles auswählen

systemctl cat slapd
BTW: service-Dateien für "/etc/init.d/*"-Dienste kann es auch im Verzeichnis:

Code: Alles auswählen

/run/systemd/generator.late
geben.

sharbich
Beiträge: 284
Registriert: 27.09.2013 21:12:40

Re: systemd slapd.service

Beitrag von sharbich » 22.04.2017 09:41:10

Hallo Ihr Lieben,
super vielen Dank. Okay, das war nur die halbe Wahrheit. Ich möchte nun verschiedene Dienste vor anderen starten. Hierzu habe ich folgendes verstanden.
Dienste die unter "/etc/init.d/ . . . z.B. slapd gestartet werden, kann ich in der Datei unter

Code: Alles auswählen

# Required-Start:    $remote_fs $network $syslog
Abhängigkeiten definieren. In diesem Fall wird der slapd Dienst erst gestartet wenn das entfernte Dateisystem verbunden ist, das Netzwerk gestartet und der Log Dienst aktiv ist. Weitere Abhängigkeiten kann ich dort definieren.

Bei "systemd" bin ich auf folgenden artikel gestoßen
https://serverfault.com/questions/48273 ... boot-order
Mir stellt sich nur die Frage wie beides zusammen spielt? Könnt Ihr mir das erklären?

Lieben Gruß von Stefan Harbich

mat6937
Beiträge: 2925
Registriert: 09.12.2014 10:44:00

Re: systemd slapd.service

Beitrag von mat6937 » 22.04.2017 09:47:10

sharbich hat geschrieben: Mir stellt sich nur die Frage wie beides zusammen spielt?
Was meinst Du mit "beides"?

Bei den service-units die vom systemd-sysv-generator erzeugt werden, kannst Du nur im Start-Stop-Script (Verzeichnis /etc/init.d) etwas (betr. Abhängigkeiten/Startreihenfolge) beeinflussen.

TomL

Re: systemd slapd.service

Beitrag von TomL » 22.04.2017 10:41:40

mat6937 hat geschrieben: Bei den service-units die vom systemd-sysv-generator erzeugt werden, kannst Du nur im Start-Stop-Script (Verzeichnis /etc/init.d) etwas (betr. Abhängigkeiten/Startreihenfolge) beeinflussen.
Nein, das stimmt nicht. Man kann einfach die update-rc.d-Generator-Variante ausplanen und stattdessen eine eigene Unit in /etc/systemd/system einstellen, die dann mit after-before-etc nach eigenem Ermessen in den Bootprozess eingereiht werden kann. Als Vorlage für die neue eigene unit kann man die Generator-Version nehmen.

Ich würde mir darüber hinaus auch noch kurz das init.d-Script anschauen. Macht es nix aussergewöhnliches , würde ich es komplett entsorgen und das Binary direkt selbst in der neuen unit starten. Ich halte init.d-Scripte mittlerweile für überflüssigen Müll.
Zuletzt geändert von TomL am 22.04.2017 10:48:58, insgesamt 1-mal geändert.

sharbich
Beiträge: 284
Registriert: 27.09.2013 21:12:40

Re: systemd slapd.service

Beitrag von sharbich » 22.04.2017 10:47:33

Hallo Ihr Lieben,

ich möchte Euch das Problem was ich habe nochmal erklären.

Ich habe auf mein Debian Jessie Server ein OpenLDAP. In diesem LDAP verwalte ich fast alle Dienste (DNS / DHCP / SSH Schlüssel und OpenVPN Schlüssel).
Das bedeutet das der slapd Dienst als aller erstes beim booten gestartet werden muss und erst danach z.B die oben genannten Dienste. Jetzt habe ich ja verstanden das der Vorteil von systemd ist, dass viele Dienste parallel starten um den Boot Prozess beschleunigen zu können.

Nur wie kann ich die Start Abhängigkeiten der Dienste regeln? Dabei muss ich einmal die Dateien der Dienste unter "/etc/init.d/ . . ." berücksichtigen. Mögliche Änderungen in den Start Dateien, via

Code: Alles auswählen

# Required-Start: . . .
und unter "/lib/systemd/system/ . . ." Mögliche Änderungen in den Start Dateien, via

Code: Alles auswählen

[Unit]
Requires= . . .
After=
Habe ich das so richtig verstanden?

Lieben Gruß von Stefan Harbich

TomL

Re: systemd slapd.service

Beitrag von TomL » 22.04.2017 10:54:48

Wenn du das "sauber" durchorganisieren willst, funktioniert das nicht über "irgendwie" von systemd interpretierte run-level-vorgaben. Das kann schon aus Prinzip nicht sauber funktionieren, wenn man maschinell geparsed und interpretiert eine statisch-serielle Reihenfolge in eine dynamisch-parallele übertragen will. Das geht nur mit gewisser Zufälligkeit. Das heisst, auf jeden Fall eigene units.

mat6937
Beiträge: 2925
Registriert: 09.12.2014 10:44:00

Re: systemd slapd.service

Beitrag von mat6937 » 22.04.2017 11:05:30

TomL hat geschrieben:
Nein, das stimmt nicht.
Doch, das stimmt schon, ... denn ich habe explizit geschrieben "Bei den service-units die vom systemd-sysv-generator erzeugt werden ...".

Was Du beschreibst ist was ganz Anderes, das ich für manche Dienste auch so mache.

sharbich
Beiträge: 284
Registriert: 27.09.2013 21:12:40

Re: systemd slapd.service

Beitrag von sharbich » 22.04.2017 11:09:01

Hi TomL,
gut hätte ich mal die Release / Change Log's gelesen nach dem Update von Wheezy auf Jessie. D.h. "systemd" wieder deaktivieren. Hast Du ein gutes HowTo für mich?

Lieben Gruß von Stefan Harbich

mat6937
Beiträge: 2925
Registriert: 09.12.2014 10:44:00

Re: systemd slapd.service

Beitrag von mat6937 » 22.04.2017 11:57:37

sharbich hat geschrieben: Das bedeutet das der slapd Dienst als aller erstes beim booten gestartet werden muss ...
Wie sind z. Zt. die Ausgaben von:

Code: Alles auswählen

find /run/systemd -iname slapd.service
cat /etc/init.d/slapd | grep -i 'Required-Start:'
?

TomL

Re: systemd slapd.service

Beitrag von TomL » 22.04.2017 12:39:09

sharbich hat geschrieben:D.h. "systemd" wieder deaktivieren.
Nein, nicht deaktivieren, sondern genau umgekehrt. Und zwar die alten Wheezy-Relikte umstellen auf systemd und dort alles vernünftig einplanen. init.d-scripte sind nicht mehr notwendig, wenn systemd das binary direkt startet.... was eindeutig der bessere weg ist.

sharbich
Beiträge: 284
Registriert: 27.09.2013 21:12:40

Re: systemd slapd.service

Beitrag von sharbich » 22.04.2017 12:48:59

mat6937 hat geschrieben:find /run/systemd -iname slapd.service

Code: Alles auswählen

/run/systemd/generator.late/slapd.service
/run/systemd/generator.late/runlevel5.target.wants/slapd.service
/run/systemd/generator.late/runlevel4.target.wants/slapd.service
/run/systemd/generator.late/runlevel3.target.wants/slapd.service
/run/systemd/generator.late/runlevel2.target.wants/slapd.service
mat6937 hat geschrieben:cat /etc/init.d/slapd | grep -i 'Required-Start:'

Code: Alles auswählen

# Required-Start:    $remote_fs $network $syslog
Wie kann ich alle init.d Skripte ins systemd migrieren?
So

Code: Alles auswählen

systemctl enable <Dienst>?
Lieben Gruß von Stefan Harbich

KP97
Beiträge: 3403
Registriert: 01.02.2013 15:07:36

Re: systemd slapd.service

Beitrag von KP97 » 22.04.2017 16:57:57

Wenn Du keine eigenen Scripte in init.d hast, kommentiere das Verzeichnis einfach mal aus oder verschiebe es an einen anderen Platz.
Systemd schaut in /etc/init.d, ob es Startscripte enthält, die dann mit den Standardservices "verglichen" werden und in /run/systemd/generator.late in Servicedateien umgewandelt
und ausgeführt werden. Wenn keine Scripte vorhanden sind, werden sofort die eigenen Service Units gestartet. Letztlich sind die Startscripte also doppelt gemoppelt und nicht mehr notwendig. Systemd hat alle Units bereits an Bord und startet diese auch richtig. Nur für eigene Abläufe ist es angebracht, einen Service zu erstellen.
In z.B. Arch Linux gibt es diese Startscripte schon lange nicht mehr.
Ich habe diese in meinem Sid auch schon vor längerer Zeit entsorgt und alles läuft ohne Probleme.

sharbich
Beiträge: 284
Registriert: 27.09.2013 21:12:40

Re: systemd slapd.service

Beitrag von sharbich » 22.04.2017 19:02:38

Hallo Ihr Lieben,
bleibt die Frage wie ich das init.d Skript ins systemd migriere? Okay ich habe verstanden das ein

Code: Alles auswählen

systemctl enabele slapd
das slapd Skript ins systemd erstellt. Wenn ich mir unter "/run/systemd/generator.late/slapd.service" die Datei anschaue, stelle ich aber wieder fest, das Skript wird unter "/etc/init.d/slapd" gestartet (siehe ExecStart).
Also nochmals wie erstelle ich das Skript unter "/etc/systemd/system/slapd.service"? 1 zu 1 kann ich es ja nicht dahin kopieren, oder? Hier das Skript was von "systemd-sysv-generator" erzeugt wurde.

Code: Alles auswählen

# Automatically generated by systemd-sysv-generator

[Unit]
SourcePath=/etc/init.d/slapd
Description=LSB: OpenLDAP standalone server (Lightweight Directory Access Protocol)
Before=runlevel2.target runlevel3.target runlevel4.target runlevel5.target shutdown.target
After=network-online.target local-fs.target
Wants=network-online.target
Conflicts=shutdown.target

[Service]
Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=yes
SysVStartPriority=1
ExecStart=/etc/init.d/slapd start
ExecStop=/etc/init.d/slapd stop
So ganz habe ich das noch nicht verstanden.

Lieben Gruß von Stefan Harbich

mat6937
Beiträge: 2925
Registriert: 09.12.2014 10:44:00

Re: systemd slapd.service

Beitrag von mat6937 » 22.04.2017 20:00:38

KP97 hat geschrieben:Systemd hat alle Units bereits an Bord und startet diese auch richtig.
Wie bzw. wo finde ich diese Units? Denn z. B. für ntp, finde ich mit:

Code: Alles auswählen

systemctl list-units --all | grep -i ntp
nur die von systemd-sysv-generator erzeugte Unit für ntp.

KP97
Beiträge: 3403
Registriert: 01.02.2013 15:07:36

Re: systemd slapd.service

Beitrag von KP97 » 22.04.2017 20:01:01

https://github.com/ioanrogers/systemd-u ... pd.service
könnte als Vorlage dienen, einzutragen in /etc/systemd/system

Mit dem Suchbegriff "systemd sldap.service" findet sich aber auch noch anderes.

mat6937
Beiträge: 2925
Registriert: 09.12.2014 10:44:00

Re: systemd slapd.service

Beitrag von mat6937 » 22.04.2017 20:11:09

KP97 hat geschrieben: könnte als Vorlage dienen, einzutragen in /etc/systemd/system
Wieso Vorlage und warum eintragen? Du schreibst doch weiter oben, diese Units wären schon an Bord:
Systemd hat alle Units bereits an Bord und startet diese auch richtig

KP97
Beiträge: 3403
Registriert: 01.02.2013 15:07:36

Re: systemd slapd.service

Beitrag von KP97 » 23.04.2017 14:01:16

NTP wird unter systemd mit dem Service systemd-timesyncd.service gesteuert. Etwas Suche, auch hier im Forum, hätte Aufklärung gebracht.
Aber da werden lieber die Helfer in etwas merkwürdigem Ton angemacht, na ja...ich will es mal übersehen...
https://wiki.archlinux.de/title/Systemd ... -timesyncd

mat6937
Beiträge: 2925
Registriert: 09.12.2014 10:44:00

Re: systemd slapd.service

Beitrag von mat6937 » 23.04.2017 14:41:05

KP97 hat geschrieben:NTP wird unter systemd mit dem Service systemd-timesyncd.service gesteuert.
Naja, das hat aber nichts mit dem ntpd-daemon zu tun. Du meinst mit NTP das ntp-Protokoll und systemd-timesyncd.service ist lediglich eine Alternative zum ntpd, aber nicht die Service-unit für den ntpd (... die nicht vom systemd-sysv-generator generiert wird).

Antworten