Мне нужно отключить все гашение/блокировку экрана как часть установки ОС (rhel7.3). После поиска я нашел, что

gsettings set org.gnome.desktop.session idle-delay 0

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

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

dconf-WARNING **: failed to commit changes to dconf: Error spawning command line 'dbus-launch --autolaunch=(long hex id here) --binary-syntax --close-stderr': Child process exited with code 1

И сделать одноразовый сервис systemd ssoff.service:

[Unit]
Description=Disable screen blanking
[Service]
Type=oneshot
ExecStart=/usr/bin/gsettings set org.gnome.desktop.session idle-delay 0
[Install]
WantedBy=graphical.target

Но я получаю то же сообщение об ошибке в журнале, показанном systemctl status ssoff. (Я понимаю, что это будет работать при каждой загрузке, что не является правильным путем, но я подумал, что если это сработает, это будет достаточно хорошо.)

Кажется, что система как-то не готова к этой команде в таких ситуациях? Как я могу добиться этого, не делая это вручную в конце?

0
Trygve Flathen 7 Ноя 2019 в 15:22

1 ответ

И gsettings, и dconf должны иметь активный DBus.

Я предполагаю, что это может работать так (хотя и не тестировалось):

[Unit]
Description=Disable screen blanking
[Service]
Type=dbus
Busname=org.example.ssoff
ExecStart=/usr/bin/gsettings set org.gnome.desktop.session idle-delay 0
[Install]
WantedBy=graphical.target

Также можно сделать dconf write /org/gnome/desktop/session/idle-delay 'uint32 0'

0
AcTiVaTe 7 Ноя 2019 в 22:05