Я могу выполнить красное смещение из командной строки, но не могу получить его работающий в systemd. Шаги в подобном вопросе не добивались цели для меня.
Ubuntu 16.04.
Мой redshift.service:
$ cat /etc/systemd/system/redshift.service
[Unit]
Description=restrict blue light
After=graphical.target
[Service]
ExecStart=/usr/bin/redshift -v
Environment=DISPLAY=:0
[Install]
WantedBy=graphical.target
Если я работаю /usr/bin/redshift
из командной строки это начинает повторно окрашивать мой экран. Если я пытаюсь запустить сервис, он выводит:
$ sudo systemctl status redshift
● redshift.service - restrict blue light
Loaded: loaded (/etc/systemd/system/redshift.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Sun 2018-09-16 21:23:51 PDT; 4s ago
Process: 4676 ExecStart=/usr/bin/redshift -v -l 37.35:121.99 (code=exited, status=1/FAILURE)
Main PID: 4676 (code=exited, status=1/FAILURE)
Sep 16 21:23:51 cyberpower-linux redshift[4676]: Initialization of randr failed.
Sep 16 21:23:51 cyberpower-linux redshift[4676]: Trying next method...
Sep 16 21:23:51 cyberpower-linux redshift[4676]: No protocol specified
Sep 16 21:23:51 cyberpower-linux redshift[4676]: X request failed: XOpenDisplay
Sep 16 21:23:51 cyberpower-linux redshift[4676]: Initialization of vidmode failed.
Sep 16 21:23:51 cyberpower-linux redshift[4676]: Trying next method...
Sep 16 21:23:51 cyberpower-linux redshift[4676]: No more methods to try.
Sep 16 21:23:51 cyberpower-linux systemd[1]: redshift.service: Main process exited, code=exited, status=1/FAILURE
Sep 16 21:23:51 cyberpower-linux systemd[1]: redshift.service: Unit entered failed state.
Sep 16 21:23:51 cyberpower-linux systemd[1]: redshift.service: Failed with result 'exit-code'.
Если я работаю xhost +
и попытайтесь запуститься снова, это действительно начинает окрашивать экран. Как я могу предоставить свой systemd доступ сценария к моему серверу окна, не предоставляя всему доступ к моему серверу окна?
Заранее спасибо за любые подсказки...
Обновление: после перемещения сервиса от /etc/systemd/system/redshift.service
кому: ~/.config/systemd/user/redshift.servce
, это начало работать.
Отметьте это /etc/systemd/user/redshift.service
не работал!
Я все еще приветствовал бы ответ, показывающий мне, как установить это для всех пользователей этого хоста.
Продолжайте перезапускать его, и это будет наконец работать lol. Проблема могла бы состоять в том, что перед входом в систему gdm еще не запустил Xorg и таким образом нет никакого дисплея, но я не уверен. Я попытался бы иметь gdm, запущенный сначала как требование, и видел бы то, что происходит.
[Unit]
After=multi-user.target
StartLimitIntervalSec=0
[Service]
Type=simple
ExecStart=/usr/bin/redshift -O 3000
Environment=DISPLAY=:0
Restart=always
RuntimeMaxSec=60
[Install]
WantedBy=graphical.target