Как запустить XDM во время загрузки?
Есть две философские школы, проповедующие различные методы запуска xdm. Последователи одного течения запускают xdm из /etc/ttys (посмотрите ttys(5)), используя приводимый пример, тогда как другие вставляют запуск xdm в скрипт rc.local (посмотрите справку по rc(8)) или X.sh, помещая последний в каталог /usr/local/etc/rc.d. Оба метода равноправны, и один из них может работать в ситуациях, с которыми не справляется другой и наоборот. В обоих случая результат один и тот же: X выводит графическое приглашение login:.
Плюсом метода с использованием ttys является документирование того, на каком vty будет запущен X и то, что ответственность за перезапуск X-сервера при завершении сеанса работы лежит на процессе init. Метод с использованием rc.local позволяет просто прекратить работу xdm, если при запуске X возникли какие-нибудь проблемы.
Из rc.local xdm должен быть запущен без аргументов, (то есть как даемон). xdm должен быть запущен ПОСЛЕ запуска getty(8), иначе они будут конфликтовать, блокируя консоль. Лучше всего выдержать паузу секунд на 10 и потом запустить xdm.
Если xdm запускается из /etc/ttys, то есть вероятность конфликта между xdm и getty(8). Одним из способов избежать этого является добавление номера vt в файл /usr/X11R6/lib/X11/xdm/Xservers.
:0 local /usr/X11R6/bin/X vt4
В вышеприведённом случае X-серверу указывается работать на /dev/ttyv3. Заметьте, что номера отличаются на единицу. Дело в том, что X-сервер считает vty от единицы, когда как отсчёт vty в ядре FreeBSD ведётся с нуля.