xset: невозможно открыть display & ldquo; & rdquo;

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

Я хотел автоматизируйте это, чтобы сценарий запускался автоматически, и поэтому я создал системный блок systemd, чтобы позаботиться об этом.

Проблема в том, что сервисный модуль не работает даже при запуске с терминала

systemctl daemon-reload systemctl start keyboard-lights.service

Я создал файл .service внутри /etc/systemd/system/

[Unit] Description=Startup script for keyboard backlights [Service] ExecStart=/usr/local/bin/keyboard-lights.sh [Install] WantedBy=multi-user.target

Скрипт для включения подсветки клавиатуры находится в /usr/local/bin/keyboard-lights.sh

У меня есть выполнил исполняемый файл сценария с помощью

chmod 744 /usr/local/bin/keyboard-lights.sh

Что мне не хватает из моего файла .service, из-за которого сценарий не запускается?

log from running journalctl -xe

Oct 23 22:09:13 user keyboard-lights.sh[3479]: running keyboard-lights script Oct 23 22:09:13 user keyboard-lights.sh[3479]: xset: unable to open display "" Oct 23 22:09:13 user systemd[1]: keyboard-lights.service: Main process exited, code=exite Oct 23 22:09:13 user systemd[1]: keyboard-lights.service: Unit entered failed state. Oct 23 22:09:13 user systemd[1]: keyboard-lights.service: Failed with result 'exit-code'.

log from running ls -lZ

-rw-rw-r-- 1 root root ? 199 Oct 23 22:00 /etc/systemd/system/keyboard-lights.service

Дополнительная править:

это скрипт keyboard-lights.sh, и он работает, когда я запускаю его на своем

#!/bin/bash echo "running keyboard-lights script" if [ -f /tmp/keyboard_light ]; then xset -led 3 && rm /tmp/keyboard_light else xset led 3 && touch /tmp/keyboard_light fi

EDIT:

Я изменил заголовок сообщения, чтобы отразить то, что я считаю причиной проблемы.

Я попытался выполнить поиск в Интернете и не нашел решения для xset: unable to open display ""

Я попытался добавить export DISPLAY=:0 к моему сценарию оболочки, но это не устранило проблему.

I изменил мой служебный файл, чтобы просто запустить команду для включения подсветки клавиатуры, изменив строку ExecStart на

ExecStart=/bin/sh -c "xset led 3"

, но ошибка xset: unable to open display "" по-прежнему сохраняется.

Почему что команда будет работать в моем терминале в порядке (включение подсветки клавиатуры), но не запускается без ошибок в моем служебном файле при запуске?

0
задан 13 November 2017 в 13:17

0 ответов

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

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