Не запускаются старшие задания и скрипты init.d

Для добавления нового режима к выходу требуется несколько команд в последовательности, например:

# create and name a new mode: "1366x768-0"
xrandr --newmode "1366x768-0" 75.61  1366 1406 1438 1574  768 771 777 800 -hsync -vsync

# attach the new mode to an output (VGA1)
xrandr --addmode VGA1 "1366x768-0"

# turn on the output using the new mode
xrandr --output VGA1 --mode "1366x768-0"

Причина появления сообщений об ошибке в вопросе - параметры режима не могут быть изменены. Используйте новое имя (например, «1366x768-1») или удалите добавленный режим. Последовательность команд для удаления режима:

# turn off the output
xrandr --output VGA1 --off

# detach the mode from the output
xrandr --delmode VGA1 "1366x768-0"

# remove the mode
xrandr --rmmode "1366x768-0"

Изменения в xrandr не сохранились при перезагрузке. Чтобы настройки сохранялись, установите параметры, подходящие для вашей установки, и сохраните их в сценарии в /usr/local/bin и добавьте их в приложения для запуска. Затем он будет запускаться каждый раз при входе в систему. Возможно, вы захотите добавить его при загрузке, а не в login.

0
задан 18 February 2012 в 13:49

1 ответ

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

start on runlevel [06]

Событие уровня запуска ничего не задерживает, поэтому у вас есть гонка .. событие это всего лишь сигнал во времени, и поэтому ваш sdmem запускается, как только последовательность выключения в /etc/rc0.d/* запускается, и оба они работают параллельно.

Если вы хотите отложить у вас есть два варианта. Либо a)

task
start on starting rc RUNLEVEL=[06]

Это задержит полное завершение работы даже начиная с вашего выхода sdmem. Обратите внимание, что здесь важна «задача», так как задание не блокирует другие задания до выхода sdmem.

b)

task
start on some-other-late-hook-event

И затем отредактируйте любой скрипт в / etc / rc0 .d / * (или /etc/rc6.d/*) вы хотите выпустить это событие и заставить его делать

initctl emit some-other-late-hook-event

Этот вызов в любом скрипте, который вы хотите, заблокирует до выхода sdmem , Еще раз обратите внимание на «задачу».

2
ответ дан 25 May 2018 в 14:10
  • 1
    Спасибо. Теперь имеет смысл, что делать. Я просто принял список стирки, который будет завершен. Я понятия не имел, что все было пронизано резьбой, и остановка могла убить мой sdmem. – bambuntu 22 February 2012 в 11:27
  • 2
    Есть ли разница помимо синтаксиса между: началом на уровне выполнения [06] и началом запуска rc RUNLEVEL = [06] – bambuntu 24 February 2012 в 03:19
  • 3
    Большая разница. событие runlevel, как я уже сказал, является неблокирующим событием .. так что все, что начинается с него, просто GOES. Событие «запуска» ожидается, поэтому сценарий «rc» (который контролирует переходы уровня запуска для совместимости с sysv) даже не начнет работать до тех пор, пока не будут завершены какие-либо задачи блокировки (например, ваша работа), так как будет запущено событие запуска. – SpamapS 28 February 2012 в 05:26
  • 4
    Вау. Хотел бы я знать это раньше. Это стоило мне времени и путаницы. Спасибо. – bambuntu 28 February 2012 в 19:51

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

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