Сервис systemd для отключения устройства не запускается

Я написал скрипт для отключения касания пальцем для моего ноутбука lenovo x230. Я хочу запустить его при запуске, поэтому я использовал systemd service для запуска этого скрипта при запуске, но я не могу запустить этот скрипт даже вручную. Любая помощь?

скрипт

[Unit]
Description=Turn-off finger touch

[Service]
Type=oneshot
ExecStart=/bin/sh -c "xinput set-prop 'Wacom ISDv4 E6 Finger touch' 'Device Enabled' 0"

[Install]
WantedBy=multi-user.target

Вот вывод команды status для этого сервиса

systemctl status finger-touch-off.service
● finger-touch-off.service - Turn-off finger touch
Loaded: loaded (/etc/systemd/system/finger-touch-off.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Ut 2016-02-23 21:03:46 CET; 6s ago
Process: 2992 ExecStart=/bin/sh -c xinput set-prop 'Wacom ISDv4 E6 Finger touch' 'Device Enabled' 0 (code=exited, status=1/FAILURE)
Main PID: 2992 (code=exited, status=1/FAILURE)

feb 23 21:03:46 xxx-thinktablet systemd[1]: Starting Turn-off finger touch...
feb 23 21:03:46 xxx-thinktablet sh[2992]: Unable to connect to X server
feb 23 21:03:46 xxx-thinktablet systemd[1]: finger-touch-off.service: main process exited, code=exited, status=1/FAILURE
feb 23 21:03:46 xxx-thinktablet systemd[1]: Failed to start Turn-off finger touch.
feb 23 21:03:46 xxx-thinktablet systemd[1]: Unit finger-touch-off.service entered failed state.
feb 23 21:03:46 xxx-thinktablet systemd[1]: finger-touch-off.service failed.

1 ответ

У меня такая же проблема. Вы должны сделать это перед выполнением xinput:

export DISPLAY=:0.0

Сценарий systemd будет:

[Unit]
Description=Turn-off finger touch

[Service]
Type=oneshot
ExecStart=/bin/sh -c "export DISPLAY=:0.0 && xinput set-prop 'Wacom ISDv4 E6 Finger touch' 'Device Enabled' 0"

[Install]
WantedBy=multi-user.target
Другие вопросы по тегам