Скрипт Upstart: обнаружение смены клавиш при загрузке

Я предполагаю, что это поведение несовместимо с настройками диспетчера питания в ваших системных настройках? Я нашел то же самое, что и вы, что Ubuntu не очень хорошо справляется с управлением питанием ноутбука «из коробки». Мне пришлось установить laptop-mode-tools. До сих пор я видел гораздо более типичное энергопотребление, не настраивая его.

Если вам просто интересно посмотреть, что происходит, установите powertop. Это покажет вам, что потребляет наибольшую мощность и дает предложения о том, какие опции включать и выключать.

1
задан 6 April 2012 в 23:21

1 ответ

Вы не можете сделать это для сценария Upstart. Они не являются интерактивными по своей природе.

Что вы можете сделать, это сделать запись меню Grub, которая указывает на сценарий оболочки aa в качестве init, предложить вам тип загрузки, который вы хотите (или взаимодействовать с вами в в любом случае вам нравится), а затем в конце do exec /sbin/init --startup-event=<type of boot>. Это приводит к тому, что событие запуска Upstart является чем-то другим, чем startup, и вы можете создать свою загрузку по своему усмотрению.

Например, поместите что-то подобное в /sbin/preinit:

#!/bin/sh 
EVENT="startup" 
while [ /bin/true ]; do   
  echo "Select boot:"   
  echo " 1) Normal"   
  echo " 2) Minimal"  
  echo " 3) Foobar"  
  echo ""   
  read selection   
  case "$selection" in 
2)   
  EVENT="minimal-startup"   
  ;; 
3)   
  EVENT="foobar-startup"   
  ;;
*)   
  ;;   
  esac 
done

exec /sbin/init --startup-event=$EVENT

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

1
ответ дан 25 May 2018 в 13:20
  • 1
    Я немного не понимаю. Вы должны использовать initctl emit signal для выбора набора стартовых скриптов? Что я должен использовать вышеприведенный сценарий, чтобы излучать набор сигналов на основе выбора пользователей здесь? Если так, так хорошо. Но я не знаю, как это обозначается выше. Является ли это заменой моего меню grub? Не могли бы вы очистить? – bambuntu 31 March 2012 в 02:38
  • 2
    Нет, вы должны установить командную строку ядра init=/sbin/preinit в свою конфигурацию grub, которая затем запускает этот скрипт, который позволяет запускать init (Upstart) с другими сигналами запуска. Обычно выполнение заданий начинается с события startup, но если этот сигнал не является значением по умолчанию, Upstart ничего не запускает. Таким образом, вы создадите задание, имеющее start on minimal-startup, которое затем запускает то, что вы хотите. – Tuminoid 31 March 2012 в 16:07
  • 3
    @bambuntu Я объяснил подробно в ответе, который я связал в своем ответе, как добавить параметры в меню Grub. – lumbric 31 March 2012 в 17:01
  • 4
    @Tuminoid Мог бы увидеть мой вопрос снова. Я отредактировал его, чтобы попытаться создать шаговое решение. Мне нужна ваша помощь. – bambuntu 6 April 2012 в 06:58
  • 5
    Это EVENT не означает имя файла в /etc/init. Файл можно назвать любым, например /etc/init/config-1.conf. Он просто ДОЛЖЕН иметь start on <EVENT> в нем, например start on minimal-startup, чтобы запустить его для запуска. – Tuminoid 10 April 2012 в 13:54

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

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