Die Systemd-Einheit hängt von der Systemd-Einheit und einem anderen Host ab

522
bgStack15

tl; dr

Wie kann ich eine systemd-Einheit von einem Netzwerkdienst abhängig machen, der von einem anderen Host kommt?

Frage

Mein Samba-Dienst auf Sambaserver konnte nicht gestartet werden, da dieser Host schneller als dns2.ipa.example.com gestartet wurde.

[root@sambaserver|/root]# systemctl status smb -l ● smb.service - Samba SMB Daemon Loaded: loaded (/usr/lib/systemd/system/smb.service; enabled; vendor preset: disabled) Active: failed (Result: exit-code) since Tue 2017-10-03 22:27:35 EDT; 2 days ago Process: 1752 ExecStart=/usr/sbin/smbd $SMBDOPTIONS (code=exited, status=1/FAILURE) Main PID: 1752 (code=exited, status=1/FAILURE) Status: "Starting process..."  Oct 03 22:27:35 sambaserver.ipa.example.com smbd[1752]: failed to bind to server ldaps://dns1.ipa.example.com ldaps://dns2.ipa.example.com with dn="[Anonymous bind]" Error: Local error Oct 03 22:27:35 sambaserver.ipa.example.com smbd[1752]: (unknown) Oct 03 22:27:35 sambaserver.ipa.example.com smbd[1752]: [2017/10/03 22:27:35.669369, 0, pid=1752] ipa_sam.c:4507(pdb_init_ipasam) Oct 03 22:27:35 sambaserver.ipa.example.com smbd[1752]: Failed to get base DN. Oct 03 22:27:35 sambaserver.ipa.example.com smbd[1752]: [2017/10/03 22:27:35.669405, 0, pid=1752] ../source3/passdb/pdb_interface.c:180(make_pdb_method_name) Oct 03 22:27:35 sambaserver.ipa.example.com smbd[1752]: pdb backend ipasam:ldaps://dns1.ipa.example.com ldaps://dns2.ipa.example.com did not correctly init (error was NT_STATUS_UNSUCCESSFUL) Oct 03 22:27:35 sambaserver.ipa.example.com systemd[1]: smb.service: main process exited, code=exited, status=1/FAILURE Oct 03 22:27:35 sambaserver.ipa.example.com systemd[1]: Failed to start Samba SMB Daemon. Oct 03 22:27:35 sambaserver.ipa.example.com systemd[1]: Unit smb.service entered failed state. Oct 03 22:27:35 sambaserver.ipa.example.com systemd[1]: smb.service failed. 

Die Geräte sind physisch und alt. Wenn Sie also mit diesen Hosts arbeiten, gibt es eine Möglichkeit, die Systemeinheit smb.service auf den Netzwerkdienst von ldaps warten zu lassen: //dns2.ipa.example.com?

Ich denke, ich könnte versuchen, ein Wrapper-Skript zu schreiben und es in der ExecStartPre- Zeichenfolge abzulegen, aber das scheint nicht so sauber zu sein, wie es sein könnte.

Wie kann ich meine Systemd-Einheitendatei dazu bringen, einen Dienst (oder eine Systemd-Einheit) von einem anderen Host im Netzwerk als Abhängigkeit zu haben?

1

1 Antwort auf die Frage

0
Cristian Rodriguez

Nein, das kannst du nicht sauber machen. Erhöhen Sie stattdessen das Zeitlimit "ldap connection timeout =" in der Datei smb.conf, damit Samba länger dauert, wenn die Verbindung nicht hergestellt werden kann.