Как я могу уменьшить время, потраченное для входа в систему путем отсрочки/задержки некоторых приложений запуска?

Я имею, устанавливают некоторые приложения для запущений на каждом входе в систему (например, красное-смещение-gtk, gtg) автоматически, но после добавления их для запущения приложений (System -> Preferences -> Startup Applications) очевидно, время, потраченное для входа в систему, увеличилось. Из-за всего этого время, которое требуется для моих панелей, рабочий стол и т.д. для появления, является слишком длинным - до которого я вынужден ожидать.

Мне не нужны эти приложения, чтобы сразу быть доступным, но было бы хорошо, если они запускаются в конечном счете, между тем меню/панель человечности доступно для запущения других приложений, что я, возможно, должен был бы.

Я пытался использовать при команде с намерением отредактировать все приложения запуска, чтобы вставить команды в очереди, но это не работало, так как приложения не получают необходимые переменные среды (как ДИСПЛЕЙ).

Это что nice команда используется для? Какие-либо другие идеи, как я могу выполнить это? Если бы возможно, я хотел бы постараться не редактировать команды приложений запуска, так как это означало бы большое усилие копировать на других машинах, которые я использую.

11
задан 18 August 2012 в 10:26

3 ответа

Используйте команду «сна».

В «Система» -> «Установки» -> «Запуск приложений» отредактируйте команду для программ, для которых вы хотите отложить:

sleep 10 && COMMAND

Замените 10 на количество секунд, которое вы хотите, чтобы ждать, и КОМАНДУЙТЕ на что изначально был в командной строке.

0
ответ дан 18 August 2012 в 10:26

Количество секунд, необходимое для ожидания загрузки вашего рабочего стола, произвольно и может изменяться в зависимости от ситуации. Вместо sleep попробуйте использовать следующее для запуска автозагрузки приложений, как только нагрузка на систему снизится:

(Редактировать: добавлено предложение koushik.)

#!/bin/bash
# 
# Delays running an application until the system load has declined.
# 
# Usage:
#   run-when-load-low 'your command here'

echo "export DISPLAY=$DISPLAY; $1 &" | batch

exit 0

Сохранить как [ 112] и добавьте run-when-load-low 'COMMAND' в Настройки запуска приложений.

Примечания к этому методу:

  • Сценарий выше - это то, что сработало для меня. Он передает только переменную среды DISPLAY в приложение. Для большинства настольных приложений это все, что вам нужно. С учетом вышесказанного обязательно учитывайте любые особые случаи и учитывайте этот факт при устранении неполадок, связанных с неправильным поведением. Хорошее место для начала, если вы думаете, что приложению могут потребоваться другие передаваемые переменные среды, это printenv и документация приложения, хотя я лично еще не сталкивался с этой проблемой.
  • Мое понимание значения «загрузки» системы заключается в том, что оно учитывает ожидания ввода-вывода, поэтому отложенные приложения не должны случайно запускаться слишком рано во время перерывов в использовании ЦП, вызванных процессами рабочего стола, ожидающими ввода-вывода. Хотя это не та область, о которой я знаю много, поэтому, пожалуйста, поправьте меня, если я ошибаюсь.
  • batch влияет только на , когда запущены приложения; это не меняет их приоритет / милость.
  • Это само собой разумеется, но если ваша система всегда имеет высокую нагрузку, приложения, запланированные с использованием этого метода, могут никогда не запускаться.
  • Если вам нужно запустить приложение с параметром, который содержит пробелы, вы можете избежать их, используя обратную косую черту: run-when-load-low 'gedit My\ Notes.txt'. Если вам действительно нужно передать параметры в одинарных кавычках в ваше приложение, вам придется использовать двойные кавычки в команде запуска: run-when-load-low "gedit 'My Notes.txt'". Для чего-то более сложного, чем это, вам, вероятно, лучше всего просто изменить копию сценария с помощью жестко запрограммированной команды.
  • [+1121]
0
ответ дан 18 August 2012 в 10:26

Я обнаружил, что просто использование sleep 10 && COMMAND в качестве имени команды не работает. У меня были проблемы с загрузкой как conky, так и xchat слишком рано, и я как-то повредился. Мне пришлось написать небольшой скрипт под названием ~/bin/startup и поместить его в него:

#!/bin/bash
sleep 10
xchat &
conky &

Вам нужно изменить его разрешения, чтобы разрешить его выполнение с помощью chmod +x ~/bin/startup, а затем просто заменить загрузочные приложения. введите команду startup, и она запустит все в сценарии.

Вы могли бы иметь один файл для каждого приложения, если бы вы были склонны таким образом.

0
ответ дан 18 August 2012 в 10:26

Другие вопросы по тегам:

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