scripts parvenus: exécuter une tâche après la mise en réseau


23

Je travaille à déplacer ma configuration de serveur actuelle vers un matériel plus récent et à migrer du koala ubuntu karmic vers le lynx lucide. Actuellement, j'utilise gw6c (compilé à partir du site Web de gogo6, par opposition à la version des référentiels) pour obtenir un accès ipv6 pour mes systèmes. Sur le système karmic koala, j'ai utilisé un simple script init.d pour démarrer le client ipv6

 #! /bin/sh
/usr/local/gw6c/bin/gw6c -f /usr/local/gw6c/bin/gw6c.conf

J'ai pensé que cela fonctionne à n'importe quel niveau d'exécution, cela devrait se traduire par

respawn
console none

start on startup

stop on shutdown

script
exec /usr/local/gw6c/bin/gw6c -f /usr/local/gw6c/bin/gw6c.conf
emit free6_ipv6_started
end script

cela fonctionne bien démarré à partir d'initctrl, mais il ne semble pas démarrer au démarrage. - son statut étant arrêt / attente. Cela fonctionne bien (et réapparaît) lorsqu'il est démarré autrement.Toutes les idées sur où je vais mal, et quel serait l'argument de départ approprié?

EDIT: l'erreur exacte est 'init: processus principal gw6c (xxx) terminé avec le statut 8' suivi du processus de réapparition, xxx étant un PID i suspect. Je soupçonne également à moitié que c'est parce que gw6c démarre avant le réseautage, et j'ai besoin de mon eth0 avant que gw6c ne soit

Réponses:


27

Apparemment

respawn
console none

start on (local-filesystems and net-device-up IFACE!=lo)
stop on [!12345]

script
chdir /usr/local/gw6c/bin/

exec /usr/local/gw6c/bin/gw6c 
end script

semble fonctionner


Oui, je viens d'en écrire quelques-uns qui utilisent net-device-up et net-device-down qui fonctionnent parfaitement.
— Andy Shellam

je ne l'ai trouvé nulle part dans la documentation. quelqu'un sur une liste de diffusion locale m'a aidé
— Journeyman Geek

C'était exactement ce que je cherchais. Ce n'est toujours pas dans la documentation parvenu partout où j'ai pu trouver.
— Nathan

4

Placez un script commençant par gw6c dans

/etc/network/if-up.d

Tous les scripts de ce dossier sont exécutés après l'apparition d'une interface. Si vous ne voulez l'exécuter que lorsque eth0 apparaît, modifiez l'entrée eth0 dans

/etc/network/interfaces

et ajoutez un appel au script

iface eth0 inet dhcp
  up /etc/init.d/gw6c restart

Je suggérerais également d'ajouter des scripts de pré-arrêt pour arrêter le tunnel avant que l'interface ne se déconnecte.

Une fois que vous avez fait cela et trouvé une implémentation qui fonctionne, postez-la ici afin que je puisse l'utiliser. J'ai gw6c sur mon ordinateur portable mais j'ai été jusqu'à présent paresseux pour l'automatiser.


L'ancien script que j'ai publié fonctionne plutôt bien - même si j'ai besoin de le redémarrer manuellement, si ma connexion se réinitialise - c'est pour le démarrage, qui est par défaut sur lucid lynx.
— Journeyman Geek du

1

Merci "The Journeyman geek" :) Tu m'as fait gagner beaucoup de temps. Je me battais avec le script /etc/init.d/gw6c, essayant quelques timings avec "sysv-rc-conf -p" et me demandant pourquoi cela ne fonctionnait pas (alias WTF?).

respawn
console none

start on (local-filesystems and net-device-up IFACE=eth0)
stop on runlevel [!12345]

script

exec /etc/init.d/gw6c start
end script

Le script légèrement modifié ("runlevel" et commande exec) a fait le travail! :) :) :)


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.