Не удается запустить rc-local.service: Не удалось подключиться к X Server

Поскольку я использую 16.04, мне нужно вручную запустить службу rc.local, чтобы команды в /etc/rc.local могли быть запущены при запуске. Тем не менее, у меня возникают некоторые проблемы с запуском службы:

sunqingyao@sunqingyao-MacBookAir:~$ sudo service rc.local start Job for rc-local.service failed because the control process exited with error code. See "systemctl status rc-local.service" and "journalctl -xe" for details.

Здесь вывод systemctl status rc-local.service:

sunqingyao@sunqingyao-MacBookAir:~$ systemctl status rc-local.service ● rc-local.service - /etc/rc.local Compatibility Loaded: loaded (/lib/systemd/system/rc-local.service; static; vendor preset: enabled) Drop-In: /lib/systemd/system/rc-local.service.d └─debian.conf Active: failed (Result: exit-code) since Fri 2017-07-14 23:52:04 CST; 2min 13s ago Process: 2420 ExecStart=/etc/rc.local start (code=exited, status=1/FAILURE) Jul 14 23:52:04 sunqingyao-MacBookAir systemd[1]: Starting /etc/rc.local Compatibility... Jul 14 23:52:04 sunqingyao-MacBookAir rc.local[2420]: Failed to connect to X Server. Jul 14 23:52:04 sunqingyao-MacBookAir systemd[1]: rc-local.service: Control process exited, code=exited status=1 Jul 14 23:52:04 sunqingyao-MacBookAir systemd[1]: Failed to start /etc/rc.local Compatibility. Jul 14 23:52:04 sunqingyao-MacBookAir systemd[1]: rc-local.service: Unit entered failed state. Jul 14 23:52:04 sunqingyao-MacBookAir systemd[1]: rc-local.service: Failed with result 'exit-code'.

и для journalctl -xe:

Jul 14 23:52:04 sunqingyao-MacBookAir sudo[2390]: sunqingyao : TTY=pts/0 ; PWD=/home/sunqingyao ; USER=root ; COMMAND=/usr/sbin/service rc.local start Jul 14 23:52:04 sunqingyao-MacBookAir sudo[2390]: pam_unix(sudo:session): session opened for user root by (uid=0) Jul 14 23:52:04 sunqingyao-MacBookAir systemd[1]: Starting /etc/rc.local Compatibility... -- Subject: Unit rc-local.service has begun start-up -- Defined-By: systemd -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel -- -- Unit rc-local.service has begun starting up. Jul 14 23:52:04 sunqingyao-MacBookAir rc.local[2420]: Failed to connect to X Server. Jul 14 23:52:04 sunqingyao-MacBookAir systemd[1]: rc-local.service: Control process exited, code=exited status=1 Jul 14 23:52:04 sunqingyao-MacBookAir systemd[1]: Failed to start /etc/rc.local Compatibility. -- Subject: Unit rc-local.service has failed -- Defined-By: systemd -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel -- -- Unit rc-local.service has failed. -- -- The result is failed. Jul 14 23:52:04 sunqingyao-MacBookAir systemd[1]: rc-local.service: Unit entered failed state. Jul 14 23:52:04 sunqingyao-MacBookAir systemd[1]: rc-local.service: Failed with result 'exit-code'. Jul 14 23:52:04 sunqingyao-MacBookAir sudo[2390]: pam_unix(sudo:session): session closed for user root
0
задан 14 July 2017 в 18:55

2 ответа

Спасибо @ bodhi.zazen за их любезное указание в комментариях к моему вопросу!

Чтобы ответить на мой вопрос:

Проблема на самом деле вызвана командами в rc.local , который содержит следующую строку для естественной прокрутки:

/usr/bin/synclient VertTwoFingerScroll=1 /usr/bin/synclient HorizTwoFingerScroll=1 /usr/bin/synclient VertScrollDelta=-150 /usr/bin/synclient HorizScrollDelta=-150

Однако для выполнения этой команды требуется подключение к X-серверу, от которого зависят все графические приложения. Однако rc.local выполняется до запуска X-сервера и, следовательно, ошибки Failed to connect to X Server.

Чтобы исправить это, просто удалите эту строку из rc.local, а sudo service rc.local start будет работать нормально. [ ! d5]

Чтобы ответить на мой фактический вопрос:

Удаление этой строки не позволяет естественной прокрутки. Чтобы сделать это, вам нужно поместить конфигурацию в конфигурационный файл Xorg.

Добавьте следующие строки в /usr/share/X11/xorg.conf.d/60-synaptics-options.conf, обратите внимание, что вам не нужно chmod a+x.

# Synaptic options Section "InputClass" Identifier "touchpad" Driver "synaptics" MatchIsTouchpad "on" # Enable natural scrolling Option "VertTwoFingerScroll" "1" Option "HorizTwoFingerScroll" "1" Option "VertScrollDelta" "-150" Option "HorizScrollDelta" "-150" EndSection

перезагрузка, и естественная прокрутка включена!

1
ответ дан 18 July 2018 в 10:17

Спасибо @ bodhi.zazen за их любезное указание в комментариях к моему вопросу!

Чтобы ответить на мой вопрос:

Проблема на самом деле вызвана командами в rc.local , который содержит следующую строку для естественной прокрутки:

/usr/bin/synclient VertTwoFingerScroll=1 /usr/bin/synclient HorizTwoFingerScroll=1 /usr/bin/synclient VertScrollDelta=-150 /usr/bin/synclient HorizScrollDelta=-150

Однако для выполнения этой команды требуется подключение к X-серверу, от которого зависят все графические приложения. Однако rc.local выполняется до запуска X-сервера и, следовательно, ошибки Failed to connect to X Server.

Чтобы исправить это, просто удалите эту строку из rc.local, а sudo service rc.local start будет работать нормально. [ ! d5]

Чтобы ответить на мой фактический вопрос:

Удаление этой строки не позволяет естественной прокрутки. Чтобы сделать это, вам нужно поместить конфигурацию в конфигурационный файл Xorg.

Добавьте следующие строки в /usr/share/X11/xorg.conf.d/60-synaptics-options.conf, обратите внимание, что вам не нужно chmod a+x.

# Synaptic options Section "InputClass" Identifier "touchpad" Driver "synaptics" MatchIsTouchpad "on" # Enable natural scrolling Option "VertTwoFingerScroll" "1" Option "HorizTwoFingerScroll" "1" Option "VertScrollDelta" "-150" Option "HorizScrollDelta" "-150" EndSection

перезагрузка, и естественная прокрутка включена!

1
ответ дан 24 July 2018 в 19:32

Другие вопросы по тегам:

Похожие вопросы: