Если вы знаете, как разместить сценарий запуска для LXDE (см. документацию ), вы всегда можете создать собственный сценарий:
until ip link show $interface | grep -F -q "state UP"; do
sleep 10 # wait every ten second
done
# interface is up, now start program
exec bla
Пояснение:
ip link show $ interface
выводит строку со статусом интерфейса (в данном случае enp0s25
):
3: enp0s25: mtu 1500 qdisc fq_codel state Режим UP DEFAULT группа по умолчанию qlen 1000
grep -F -q «Состояние UP»
проверяет, содержит ли вывод строку состояние UP
. Если да, возвращается успех (код выхода 0), в противном случае - сбой (код выхода 1).
пока… делать; спать 10; done
выполняет sleep 10
до тех пор, пока команда не будет успешной, то есть до тех пор, пока ip
не покажет состояние UP
. Пока интерфейс не работает, подождите 10 секунд и проверьте снова.
когда интерфейс активен, цикл завершается и выполняется следующий сценарий.
Это, конечно, «занятое ожидание» и не идеальное решение, но всегда будет работать. (Или используйте ping -W 2 -c 1 google.com> & / dev / null
вместо ip… | grep
, если вы хотите обеспечить реальное подключение к Интернету.)
Если вы используете какой-либо сетевой менеджер, проверьте его документацию, можете ли вы добавить скрипты, которые выполняются при установке сетевого подключения. Однако это может работать только с корневым доступом, что усложняет запуск программы в вашем X-сеансе .