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

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

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

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

7
задан Diogo
31.01.2023 15:50 Количество просмотров материала 2469
Распечатать страницу

2 ответа

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

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

в bash команда wait является sleep. Он принимает аргумент количества секунд, которые вы хотите подождать. Это держит ваш сценарий от тестирования слишком часто и использовать ресурсы.

хитрость заключается в том, чтобы выяснить, если вы в сети. Один из способов сделать это-сделать что-то маленькое, что потерпит неудачу, если вы не в сети. Ниже приведен хак, который должен быть достаточно, чтобы вы начали (если вы знаете 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 &
4
отвечен Joe 2023-02-01 23:38

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

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

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

вместо

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

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

0
отвечен Magpie 2023-02-02 01:55

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх