4

Как я могу автоматически запустить хром в lubuntu после подключения к сети?

Я попытался добавить ~/ .config/ autostart/, но chromium запустился до подключения к Wi-Fi, поэтому отображается страница с ошибкой.

Я искал через Google, но до сих пор не могу найти какое-либо решение.

3 ответа3

4

Я не знаю элегантного способа, но вот подход, который должен работать.

Напишите скрипт, который проверяет, подключены ли вы к сети. Если нет, поспите некоторое время, а затем вернитесь назад, чтобы проверить снова. Когда вы выходите в интернет, запускаете Chrome и выходите, и т.д .. Поместите этот скрипт в каталог автозапуска.

В bash команда ожидания - это сон. Требуется аргумент количества секунд, которые вы хотите подождать. Это удерживает ваш скрипт от слишком частого тестирования и использования ресурсов.

Хитрость заключается в том, чтобы выяснить, если вы онлайн. Один из способов сделать это - сделать что-то маленькое, что не получится, если вы не в сети. Ниже приведено описание хака, которого должно быть достаточно для начала работы (если вы знаете bash). Я нашел трюк с командой wget в сети где-то, и я не уверен, что именно он делает, но он быстрый и работает.

Вам придется заменить свой путь на хром.

Амперсанд в конце строки chrome заставляет chrome работать в фоновом режиме, поэтому ваш скрипт не будет зависать на этой строке, пока не выйдет chrome. Это будет продолжаться и завершаться в обычном режиме, оставляя Chrome работать самостоятельно.

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

#!/bin/bash

function online {
  ## Test if online - prototype code
  wget -q -O /dev/null --timeout=5 http://udc.msn.com/c.gif
  return $?
}

until online
do
  sleep 5
done

/opt/google/chrome/google-chrome &
0

Рабочий пример ...

#!/bin/bash

function online {
  ## Test if online - prototype code
  ping -c 1 google.com 
  return $?
}

until online
do
  sleep 5
done

vmware-view %u --nonInteractive &
0

Я думаю, что следующее должно работать, но я предполагаю, что вы установили путь к ~/.config в вашем ~/.bashrc

Убедитесь, что пути вашего bashrc установлены следующим образом

export PATH=$PATH:$HOME/.config:/other/stuff

вместо

export PATH=$HOME/.config:/other/stuff:$PATH

где $PATH - это общесистемные настройки PATH - вы проверяете, что файлы автозапуска в /etc/xdg/autostart читаются перед вашими домашними настройками при входе в систему.

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