Événement Upstart lorsque la connectivité réseau à un serveur spécifique est disponible?

0

Existe-t-il un moyen de coder un événement à démarrer lorsque la connectivité réseau à un ordinateur spécifique devient disponible? Quelque chose basé sur un résultat de ping fonctionnerait dans mon cas. La tâche en cours de mise en route se bloquera si le réseau meurt, ce qui permet à Respawn de démarrer assez facilement. Toutefois, si la connexion réseau n’est pas disponible au démarrage, elle se bloque et l’arrêteur ne l’attrapera pas (c’est une instance de ffmpeg diffusée en continu à partir du ffserver local. à un autre ffserver si cela aide à mettre en évidence le cas d'utilisation).

CoryG
la source

Réponses:

1

Si vous connaissez l'adresse IP de la machine, vous pouvez confirmer que c'est la «bonne» machine en confirmant l'adresse MAC comme suit:

arp -an 192.168.1.123

Vous aurez probablement besoin d’envoyer une requête ping d’abord pour que l’arp puisse le trouver.

Voici un script que j'utilise qui fait la même chose:

#!/bin/bash

ip=192.168.1.123 
mac=00:aa:bb:cc:dd:ee


if ping -c 1 -t 1 ${ip} > /dev/null && arp -an ${ip} | grep ${mac}; then
    echo "${ip} has the expected mac addy." 

    # Mount my nfs share (requires sudo, but whatever)
    mount -t nfs -o proto=tcp,port=2049 ${ip}:/ /mnt 
else
    echo "This isn't the network I'm looking for."   
fi
4umfreak
la source