web-dev-qa-db-fra.com

Service de démarrage automatique au démarrage qui dépend du réseau

J'ai un service particulier (dans ce cas OpenFire) qui s'exécute au démarrage. Lorsqu'il démarre, il tente de se connecter à une base de données à un nom d'hôte donné. Au démarrage, il ne parvient pas à se connecter à cette base de données car il ne peut pas trouver l'hôte dans DNS.

Ma meilleure hypothèse est que ce service s'exécute au démarrage avant l'initialisation de la mise en réseau et que les serveurs DNS ont été obtenus à partir de DHCP. Existe-t-il un moyen de spécifier les dépendances de service de démarrage à respecter avant l'exécution du script /etc/init.d/?

6
roktechie

Vous pouvez chercher le service dans /etc/rc0.d, il aura S ## [nom], c'est-à-dire - S35networking

Donc, si vous faites dire S36openfire, il devrait se charger juste après la mise en réseau. Ou faites le nombre 99 et il se chargera en dernier, donnant au réseau le temps de le faire.

J'espère que ça va faire l'affaire pour vous.

1
Eternal Wolf

Oubliez le débutant. Il existe des moyens beaucoup plus faciles de le faire. Mettez un script qui lance Openfire ici:

 /etc/network/if-up.d/

Si openfire doit fonctionner en tant qu'utilisateur, procédez comme suit:

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

Assurez-vous de le marquer comme exécutable:

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

De même, vous pouvez fermer openfire lorsque vous perdez votre connexion réseau, en insérant un script dans /etc/network/if-down.d/ qui le supprime:

#!/bin/sh
killall openfire
3
Ralf