Я обновил систему 2 дня назад и теперь обнаружил, что скрипт startx systemd не запустился. Похоже, это вызвано тем, что Arch по умолчанию загрузился в tty1. Переключение на tty7 и перезапуск скрипта startx systemd работают нормально, предположительно потому, что скрипт systemd указывает tty7. Запуск только команды "startx" приводит к следующей ошибке, хотя 2 дня назад все работало:
(==) Log file: "/home/XXXXX/.local/share/xorg/Xorg.0.log", Time: Wed Feb 10 19:13:22 2016
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
(EE)
Fatal server error:
(EE) parse_vt_settings: Cannot open /dev/tty0 (No such file or directory)
(EE)
(EE)
Please consult the The X.Org Foundation support
at http://wiki.x.org
for help.
(EE) Please also check the log file at "/home/XXXXX/.local/share/xorg/Xorg.0.log" for additional information.
(EE)
(EE) Server terminated with error (1). Closing log file.
xinit: giving up
xinit: unable to connect to X server: Connection refused
xinit: server error
Couldn't get a file descriptor referring to the console
Вот соответствующий фрагмент из скрипта systemd:
TTYPath=/dev/tty7
ExecStart = /usr/bin/xinit /usr/bin/dbus-launch --exit-with-session /usr/bin/kodi-standalone -- :0 -nolisten tcp vt7
Restart = on-abort
StandardInput = tty
Обычно система загружается в tty7, и приложения GUI не имеют проблем с запуском, независимо от того, указан tty7 или нет, теперь startx пытается использовать tty0 по умолчанию, который, похоже, не существует. Было ли изменение в поведении по умолчанию? Как это можно решить?
решение1
Я наконец-то выяснил причину. Я отредактировал Xwrapper.config, который нужен для Kodi, и с тех пор изменил его, чтобы проверить его требование. Обновление, должно быть, изменило что-то, из-за чего он снова стал необходимым.
sudo nano /etc/X11/Xwrapper.config
allowed_users=anybody
needs_root_rights = yes // no value caused issues
sudo startx по-прежнему работал без каких-либо опций, хотя его запуск и выход делали невозможным переключение на tty7.
Я до сих пор не знаю, зачем это нужно, поскольку, насколько я понимаю, startx не требует прав root.