У меня есть скрипт, который изменяет некоторые настройки Gnome, которые я хочу запускать при запуске.Сам скрипт работает нормально, когда я запускаю его вручную, но я получаю следующую ошибку, когда запускаю его как службу systemd:
startup-user.service — Служба запуска
Загружено: загружено (/etc/systemd/system/startup-user.service; включено; предустановка поставщика: включена)
Активно: сбой (результат: код выхода) с субботы 05 февраля 2022 г., 13:03:48 UTC; 21с назад
Процесс: 1948 ExecStart=/data/startup-user.sh (code=exited, status=1/FAILURE)
Основной PID: 1948 (код=выход, статус=1/НЕИСПРАВНОСТЬ)
ЦП: 22 мс
05 февраля, 13:03:48 debian systemd[1]: запущена служба запуска.
05 февраля, 13:03:48 debian gsettings[1950]: не удалось зафиксировать изменения в dconf: невозможно автоматически запустить D-Bus без X11 $DISPLAY
05 февраля, 13:03:48 debian gsettings[1953]: не удалось зафиксировать изменения в dconf: невозможно автоматически запустить D-Bus без X11 $DISPLAY
05 февраля, 13:03:48 debian gsettings[1956]: не удалось зафиксировать изменения в dconf: невозможно автоматически запустить D-Bus без X11 $DISPLAY
05 февраля 13:03:48 debian startup-user.sh[1959]: ошибка подключения: не удается автоматически запустить D-Bus без X11 $DISPLAY
05 февраля 13:03:48 debian systemd[1]: startup-user.service: основной процесс завершен, код=выход, статус=1/FAILURE
05 февраля, 13:03:48 debian systemd[1]: startup-user.service: Ошибка с результатом «код выхода».
Вот файл скрипта:
#!/бин/баш
gsettings установить org.gnome.desktop.peripherals.touchpad natural-scroll false
gsettings установить org.gnome.desktop.peripherals.touchpad касанием и щелчком true
gsettings установить org.gnome.settings-daemon.plugins.power с поддержкой окружающей среды false
gdbus call --session --dest org.gnome.SettingsDaemon.Power --object-path /org/gnome/SettingsDaemon/Power --method org.freedesktop.DBus.Properties.Set org.gnome.SettingsDaemon.Power.Screen Brightness '<int32 100>'
А вот и файл сервисного юнита:
[Ед. изм]
Описание=Служба запуска
После=graphical.target
[Оказание услуг]
Тип=простой
ExecStart=/data/startup-user.sh
Пользователь=пользователь
[Установить]
WantedBy=graphical.target
Это первый раз, когда я работал с системными службами, и я мало знаю о диспетчерах дисплеев или о чем-либо еще, но я предполагаю, что если моя служба запускается после графический.таргет
, затем следует запустить диспетчер отображения и установить все необходимые переменные. я тоже пробовал После=gdm.service
, и я не уверен, должен ли я иметь графический.таргет
для обоих После=
и WantedBy=
, но если я удалю его из WantedBy=
то служба вообще не работает.
Если вам интересно и/или это имеет значение, это для живой системы, с которой я строю Дебиан в прямом эфире. Вместо того, чтобы использовать постоянный раздел, я хочу запускать этот скрипт каждый раз при загрузке, чтобы он мог выполнить некоторую базовую настройку. Файл сценария находится в отдельном разделе ext4, смонтированном по адресу /данные
, поэтому я могу изменить файл сценария, когда захочу изменить настройки.
Что я делаю не так? Спасибо!