У меня есть скрипт, который я хочу запустить при запуске для переключения X-конфигураций в зависимости от местоположения, но я, может казаться, не узнаю, где привести в порядок его, чтобы заставить его работать, прежде чем X будет запущен. Это приводит ко мне имеющий необходимость перезапустить X, чтобы заставить это выполнять корректную конфигурацию.
В настоящее время мой сценарий расположен в /etc/init.d/whereami
, с символьными ссылками в /etc/rc[2-5].d/S25whereami
. Я пытался узнать, когда X запускается, в случае, если проблема просто 25
, но я, может казаться, не нахожу ответ...
Любая справка ценится.
Ubuntu запускает X-окна с GDM (для систем с помощью стандартного рабочего стола человечности) или от KDM (для систем с помощью kubuntu-рабочего-стола).
Для запущения скрипта до запуска GDM/KDM Вы могли также
Ubuntu использует Debian-стиль runlevels: runlevel 1 является однопользовательским, режим восстановления; runlevels 2-5 являются всеми одинаковыми (многопользовательский GUI); и по умолчанию начальные загрузки системы к runlevel 2.
Ubuntu 9.10 использует Выскочку, которая предоставляет сервисные сценарии запуска в/etc/init. Более традиционные init сценарии в/etc/init.d и/etc/rc.d все еще доступны для сервисов, которые не были портированы к Новомодному стилю init сценарии, но GDM имеет тот. (Обратите внимание, что Ubuntu 9.10 обеспечивает/etc/init.d/gdm, но не создает/etc/rcX.d символьных ссылок для него.)
Запуском GDM управляет/etc/init/gdm. Эти строки наверху сценария указывают, когда запустить и остановить GDM. Уведомление там не является никакой runlevel спецификацией для запуска GDM - только сервисы, которые должны быть запущены сначала.
start on (filesystem
and started hal
and tty-device-added KERNEL=tty7
and (graphics-device-added or stopped udevtrigger))
stop on runlevel [0156]
emits starting-dm
Посмотрите человека 5 init для документации относительно Новомодных сценариев и исследуйте/etc/init своей системы / *.conf файлы для некоторых примеров. Также см. стартовую страницу справочника события:
Пример
Сервис, который хочет работать каждый раз, когда другая услуга работала бы, запустился прежде и остановился после нее, мог бы использовать:start on starting apache stop on stopped apache
Задача, которая должна быть выполнена перед другой задачей или сервисом, запускается, мог бы использовать:
start on starting postgresql
Также обратите внимание, что Новомодные сценарии GDM/KDM испускают сигнал, запуск-dm, который мог бы также быть полезным.
Так Новомодный сценарий, разработанный для выполнения, прежде чем, GDM должен использовать один из них, запускаются на пунктах:
# run only when starting GDM
start on starting gdm
# run when starting GDM or KDM
start on (starting gdm
or starting kdm)
# run when starting any DM
# starting-dm is a custom event emitted by the GDM/KDM/etc scripts
start on starting-dm
Обычно, X запускается в runlevel 5, и так как Вы хотите, чтобы Ваш сценарий запустился прежде X (в форме xdm/kdm/gdm), Вам будет нужен он, чтобы иметь более низкое количество затем запись Sxxxdm. Так, в моей системе здесь, xdm запускается с S111xdm, таким образом, Вам была бы нужна символьная ссылка /etc/rc5.d/S10whereami
.