it-swarm.com.de

Autostart-Dienst beim Booten, der vom Netzwerk abhängt

Ich habe einen bestimmten Dienst (in diesem Fall OpenFire), der beim Start ausgeführt wird. Beim Start wird versucht, unter einem bestimmten Hostnamen eine Verbindung zu einer Datenbank herzustellen. Beim Start kann keine Verbindung zu dieser Datenbank hergestellt werden, da der Host im DNS nicht gefunden wird.

Ich vermute, dass dieser Dienst beim Start ausgeführt wird, bevor das Netzwerk initialisiert wurde und DNS-Server von DHCP bezogen wurden. Gibt es eine Möglichkeit, Startdienstabhängigkeiten anzugeben, die erfüllt sein müssen, bevor das Skript /etc/init.d/ ausgeführt wird?

6
roktechie

Sie können in /etc/rc0.d nach dem Dienst suchen, er hat S ## [Name], dh - S35networking

Wenn Sie also festlegen, dass S36openfire angezeigt wird, sollte es direkt nach dem Netzwerkbetrieb geladen werden. Oder geben Sie die Zahl 99 ein, und es wird zuletzt geladen, sodass das Netzwerk Zeit hat, dies zu tun.

Hoffe, dass ich den Trick für Sie tun werde.

1
Eternal Wolf

Vergiss den Emporkömmling. Es gibt viel einfachere Möglichkeiten, dies zu tun. Fügen Sie hier ein Skript ein, das Openfire startet:

 /etc/network/if-up.d/

Wenn openfire als Benutzer ausgeführt werden muss, ist dies etwa wie folgt:

#!/bin/sh
su -c "openfire" myUserName

Stellen Sie sicher, dass Sie es als ausführbar markieren:

Sudo chmod +x /etc/network/if-up.d/openfire

Ebenso können Sie openfire schließen, wenn Sie Ihre Netzwerkverbindung verlieren, indem Sie ein Skript in /etc/network/if-down.d/ einfügen, das es beendet:

#!/bin/sh
killall openfire
3
Ralf