Start X at Boot (Українська)
Короткий зміст |
---|
Охоплює методи bash_profile і inittab для запуску X сервера під час завантаження. |
Дивіться також |
Automatic login to virtual console |
Display Manager |
Xinitrc (Українська) |
Більшість користувачів використовують дисплейний менеджер для запуску X-сервера. У цій статті представлено два методи запуску без дисплейного менеджера. Метод bash_profile запустить X, коли він ввійде в tty. Спосіб inittab дозволяє автоматично запускати X без надання пароля.
Щоб вручну запустити X, використовуються startx або xinit. Обидва будуть виконувати ~/.xinitrc, які можуть бути налаштовані для запуску вибору менеджера вікон, як описано у статті xinitrc (Українська).
1 bash_profile
Альтернативою для менеджера входу є додавання наступного до у низ вашого ~/.bash_profile (якщо ~/.bash_profile ще не існує, ви можете скопіювати скелет з /etc/skel/.bash_profile. Якщо ви використовуєте zsh, додайте наступні рядки до вашого ~/.zprofile):
~/.bash_profile
if [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty1 ]]; then exec startx # Could use xinit instead of startx #exec xinit -- /usr/bin/X -nolisten tcp vt7 fi
або за допомогою додаткової перевірки(якщо tty1 (Ctrl+Alt+F1) показує повідомлення про помилку):
~/.bash_profile
if [[ -z $DISPLAY ]] && ! [[ -e /tmp/.X11-unix/X0 ]] && (( EUID )); then exec startx fi
Або з підказкою:
~/.bash_profile
if [[ -z $DISPLAY ]] && ! [[ -e /tmp/.X11-unix/X0 ]] && (( EUID )); then while true; do read -p 'Do you want to start X? (y/n): ' case $REPLY in [Yy]) exec xinit -- /usr/bin/X -nolisten tcp vt7 ;; [Nn]) break ;; *) printf '%s\n' 'Please answer y or n.' ;; esac done fi
Ви вийдете з профіля користувача, коли X буде вбито. Щоб уникнути цього, видаліть частину exec з сценарію.
2 inittab
Інший спосіб обходу менеджерів відображення та завантаження прямо в бажаний менеджер вікон або середовище робочого столу включає редагування /etc/inittab.
Змініть:
id:3:initdefault: [...] x:5:respawn:/usr/bin/xdm -nodaemon
На:
id:5:initdefault: [...] x:5:once:/bin/su - -- PREFERRED_USER -l -c '/usr/bin/startx </dev/null >/dev/null 2>&1'
- Опція - викликає "оболонку входу", додаючи тире (-) до його імені.
- Оскільки команда задається опцією -c, оболонка також запускається в "неінтерактивному режимі".
- Bash не виконує звичайний процес входу в режим неінтерактивного входу, якщо він не вимушений за допомогою параметра -l.
- Опція - гарантує, що -l і -c параметри передаються до оболонки, а не використовуються самим su. Ці обхідні шляхи потрібні для комбінації GNU su та Bash; дивіться «su 5.2.1 не викликає bash як оболонку входу».
- Стандартний вхід повинен бути перенаправлений (</dev/null), якщо Getty або інша програма все ще використовується на консолі, інакше буде конфлікт між кількома програмами, які перехоплюють консольний вхід.
- Вихід також може бути перенаправлений (>/dev/null 2> & 1), щоб уникнути виведення повідомлень з X у консоль.
- Поле, заповнене once, може бути змінено на respawn, яке перезавантажить X, якщо він вийде.
- startx може бути змінений на будь-яку бажану команду або сценарій. Наприклад:
startx -- -nolisten tcp -br -deferglyphs 16
Також ви можете зробити це для декількох користувачів, які використовують різні рівні виконання,
x1:4:once:/bin/su - -- PREFERRED_USER1 -l -c '/usr/bin/startx </dev/null >/dev/null 2>&1' x2:5:once:/bin/su - -- PREFERRED_USER2 -l -c '/usr/bin/startx </dev/null >/dev/null 2>&1'
і вставлення нового запису в GRUB 's /boot/grub/menu.lst:
# (0) Parabola GNU/Linux-Libre title Parabola GNU/Linux-Libre USER1 root (hd0,0) kernel /vmlinuz-linux-libre root=/dev/disk/by-label/Libre ro 4 initrd /initramfs-linux-libre.img # (1) Parabola GNU/Linux-Libre title Parabola GNU/Linux-Libre USER2 root (hd0,0) kernel /vmlinuz-linux-libre root=/dev/disk/by-label/Libre ro 5 initrd /initramfs-linux-libre.img