Ответ в 2 словах: местоположение Xserver для GDM трудно кодируется во время компиляции в configure.ac, строка 1199 в переменной X_SERVER и не может быть настроено. Так, можете быть Вы, мог играть с символьными ссылками, связываясь /usr/bin/Xorg
(или, менее вероятно /usr/bin/X
, посмотрите это) к Вашей сборке Xserver.
Подробнее:
У меня есть Debian 7, также и вот мое дерево процесса:
|-gdm3-+-gdm-simple-slav-+-Xorg
| | |-gdm-session-wor-+-gnome-session-+-bluetooth-apple---{bluetooth-apple}
| | | | |-evolution-alarm---2*[{evolution-alarm}]
| | | | |-gdu-notificatio
| | | | |-gnome-fallback----2*[{gnome-fallback-}]
| | | | |-gnome-panel-+-gnome-terminal-+-bash
| | | | | | |-bash---vi
| | | | | | |-bash-+-less
| | | | | | | `-pstree
| | | | | | |-gnome-pty-helpe
| | | | | | `-3*[{gnome-terminal}]
| | | | | |-iceweasel-+-plugin-containe-+-4*[gtk-gnash]
| | | | | | | `-{plugin-containe}
| | | | | | `-31*[{iceweasel}]
| | | | | |-pidgin
| | | | | `-3*[{gnome-panel}]
| | | | |-gnome-screensav---2*[{gnome-screensav}]
| | | | |-gnome-settings----2*[{gnome-settings-}]
| | | | |-gnome-sound-app---{gnome-sound-app}
| | | | |-metacity---3*[{metacity}]
| | | | |-nm-applet---{nm-applet}
| | | | |-notification-da---{notification-da}
| | | | |-polkit-gnome-au---{polkit-gnome-au}
| | | | |-ssh-agent
| | | | |-tracker-miner-f---2*[{tracker-miner-f}]
| | | | |-tracker-store---6*[{tracker-store}]
| | | | `-3*[{gnome-session}]
| | | `-2*[{gdm-session-wor}]
| | `-{gdm-simple-slav}
| `-{gdm3}
Так, Xorg запускается через gdm-simple-slave. Definitly, /etc/gdm/Init/Default
не имеет никакого отношения к стартовому Xserver, как он был сказан здесь и здесь.
Были некоторые признаки, которые невозможно настроить, как X запускается с gdm.
Я решил пойти для исходных кодов, которые вполне прилично структурированы. Так:
Перейдите к исходным кодам, существует папка демона, которая содержит файл ВНУТРЕННОСТЕЙ, объясняя структуру кода.
Там можно читать:
** GdmServer
Класс, используемый ведомым устройством, которое справляется с выполнением локального X-сервера.
Так, файл, в котором мы нуждаемся, является https://git.gnome.org/browse/gdm/tree/daemon/gdm-server.c
Существует несколько вложенных функций, ответственных за вызов X-сервера и создание его параметров командной строки.
Функция, непосредственно ответственная за выполнение процесса X-сервера, является gdm_server_spawn, который порождает X в строке 694 с g_spawn_async_with_pipes glib.
Так, мы должны узнать, как argv
формируется. Ну, в 2 словах это - строка 293, и нам нужно значение макроса X_SERVER (если Вы не используете systemd Redhat вместо sysVinit, но Вы не :)).
Увы, этот макрос по-видимому формируется в configure.ac, строка 1199 и трудно кодируется. Так, кажется, что наилучший вариант состоит в том, чтобы поместить символьную ссылку на Вашу сборку Xserver к одному из тех местоположений.
Это не бесконечная петля; Это задача, которая должна проходить каждые десять минут. Поскольку такая задача может попасть в планировщик задач, CRON
.
Запустите команду Crontab -e
и добавьте эту одну строку в нижнюю часть файла:
*/10 * * * * /path/to/my-command-here
Убедитесь, что My-Command - здесь
- это исполняемый скрипт ( chmod u + x my-command - здесь
) И что его первая строка начинается с #!
И название интерпретатора скрипта (обычно #! / Bin / Bash
).
Каждая запись в шаблоне * / 10 * * * *
Карты до минуты (0-59), час (0-23), день (1-31), месяц (1-12 ), а день недели (0-6, с 0 = воскресенье).
Могу ли я поместить это в /etc/init.d/rc.local или я должен поместить это в /etc/rc.local или куда-нибудь еще полностью?
Если вы поместите это в rc.local
, вы должны поместить это в подоболочку и вилку, которая находится в фоновом режиме. Последняя строка rc.local
должна быть выходом 0
, и она не должна блокировать, т.е. любые действия на переднем плане должны быть краткими.
(while true
do my-command-here
sleep 600
done) &
( )
помещает его в подоболочку, а и
- в фоновое пространство.
Если у вас возникла проблема, проверьте этот вопрос-ответ об отладке rc.local
.