Как уменьшить время ожидания ifup?

Я пишу сценарий оболочки, который вызывает интерфейс Ethernet (настроенный для DHCP), чтобы определить, подключен ли он к сети. Если это не так, я хотел бы своевременно сообщить (в течение нескольких секунд), что нет связи. К сожалению, в отсутствие соединения ifup, кажется, ждет несколько минут до истечения времени ожидания, и на странице руководства не указывается параметр таймаута. Есть ли способ остановить его через несколько секунд?

Это на Ubuntu Server 11.10; NetworkManager не используется.

1
задан 29 December 2011 в 03:08

2 ответа

Наконец-то я нашел способ.

Как оказалось, так как я действительно хочу сделать, это проверить ссылку, мне совсем не нужно ifup. Вместо этого я могу использовать ethtool (хотя он должен быть установлен первым), например:

connected=$(ethtool eth0 | awk '/Link detected:/ { print $3 }')

Если, однако, мне нужно было проверить ifup, я мог бы использовать фоновый процесс и переменной оболочки $!. Если бы я просто хотел проверить, продолжался ли он после таймаута, я мог бы это сделать:

ifup eth0 &
sleep 5
if ps -p $! | grep -q "$!"; then
    connected='no'
    kill $!
else
    connected='yes'
fi

Если бы я хотел записать результат из ifup, лучшим вариантом было бы, вероятно, перенаправление это во временный файл. (Я смотрел в именованные каналы, но я не думаю, что они будут работать для этой цели, ifup будет блокироваться до тех пор, пока другой процесс не будет читать свой вывод.)

0
ответ дан 25 May 2018 в 15:37

Вы не сказали, что используете для уведомления.

[[ -n "$(ifconfig | grep '192.*' )" ]] || echo "down"

Измените «192» на префикс вашей сети (чаще всего 192.168.xy).

] Измените «echo» вниз «» на ваше уведомление.

Запустите эту команду из cron с некоторым разумным интервалом.

Возможно, что-то похожее на строки

[[ -n "$(ifconfig | grep '192.*' )" ]] || dhclient eth0

запускается раз в минуту?

0
ответ дан 25 May 2018 в 15:37
  • 1
    Это не периодическое уведомление. Это часть процесса настройки сети, и я просто пытаюсь выяснить, является ли eth0 физически подключен к сети или нет? & Quot; – Taymon 6 January 2012 в 12:38

Другие вопросы по тегам:

Похожие вопросы: