Запуск скрипта после загрузки графического интерфейса

Запуск скрипта после загрузки графического интерфейса

Я знаю, как запустить программу при загрузке, при входе в систему (Система > Настройки > Запускаемые приложения) или при открытии оболочки (.bashrc). Я также читал"выполнить скрипт после загрузки рабочего стола?". Я понял, что каждое приложение, добавленное в Startup Applications, увеличивает время, пока рабочий стол не станет пригодным для использования. Поэтому я ищу способ запустить все "приятные вещи" из скрипта (он заработал), который запускается после завершения обычного запуска.

Я не совсем понимаю, как это сделать. Мне следует использовать второй скрипт, который вызывает первый с помощью & (чтобы он работал в фоновом режиме) и добавить ожидание (несколько секунд|определенного события) к первому?

решение1

Просто вызовите sleepв начале вашего скрипта "приятных мелочей". Это не должно блокировать загрузку рабочего стола. Вы также можете ускорить работу на многоядерном оборудовании, переводя каждый процесс в фоновый режим.

например

sleep 20s
<something that takes a long time> &
<this can now start immediately> &
...

Две команды будут выполняться параллельно, но они будут ждать 20 секунд перед запуском. Вы можете использовать "m", "h" или "d", чтобы указать минуты, часы или дни, если несколько секунд — это не то, что вы имели в виду. =)

решение2

Если вы собираетесь запустить что-то дорогое, запускайте это в фоновом режиме с задержкой. Например

after 20s find-all-the-dirty-dishes &
after 1m find ~ -name '*~' -mtime +30 -exec rm '{}' ';'

где вам придется реализовать afterсебя, но это может быть что-то вроде этого

#!/bin/sh
sleep "$1"
shift
exec "$@"

Связанный контент