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

2178
user998661

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

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

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

4

2 ответа на вопрос

4
Joe

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

Напишите скрипт, который проверяет, подключены ли вы к сети. Если нет, поспите некоторое время, а затем вернитесь назад, чтобы проверить снова. Когда вы подключитесь к Интернету, запустите 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 & 
Хороший сценарий. Работает из коробки. Большое спасибо! BetaRide 12 лет назад 0
0
Magpie

I think the following should work but I am assuming you set the path to ~/.config in your ~/.bashrc

Make sure you have the paths of your bashrc set like this

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

instead of

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

where $PATH is your system wide PATH settings - you are ensuring the autostart files in /etc/xdg/autostart are read before your home settings when you login.

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