Есть ли способ в upstart для кодирования события, которое начинается, когда становится доступным сетевое подключение к определенной машине? Что-то, основанное на результате пинга, будет работать в моем случае. Запускаемая задача завершится сбоем, если сетевое соединение прекратится, поэтому респаун может запустить его достаточно легко, но если сетевое соединение недоступно, когда оно запускается, оно будет зависать, и upstart не будет его ловить (это экземпляр ffmpeg, потоковый из локального ffserver другому ffserver, если это поможет выделить вариант использования).

1 ответ1

1

Если вы знаете IP-адрес устройства, вы можете подтвердить, что это «правильный» компьютер, подтвердив MAC-адрес примерно так:

arp -an 192.168.1.123

Скорее всего, вам сначала нужно будет пропинговать его, чтобы arp смог его найти.

Вот скрипт, который я использую, который делает то же самое:

#!/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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .