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