LINUX.ORG.RU

Запуск сервиса (скрипта) после загрузки рабочего стола

 


1

2

Доброго времени суток всем!

Ест много рабочих станций пользователей. Пытаюсь заставить работать скрипт после входа пользователя в систему. Здесь необходимо пояснение: не после запуска x-сервера, не после запуска графической лабуды со вводом логина и пароля пользователя, а именно после того, как пользователь ввёл свои логин и пароль и пошла жара инициализация рабочего стола.

Пытаюсь сделать через systemd, а именно создаю в /etc/systemd/user/ файл myservice.service со следующим содержимым:

[Unit]
After=graphical.target

[Service]
Type=oneshot
ExecStart=/opt/myservice.sh

[Install]
WantedBy=default.target

Затем включаю сервис:

sudo systemctl --user --global enable get-list-resources

В результате скрипт запускается сразу после запуска иксов в момент появления экрана с логином.

Пробовал писать WantedBy=xsession.target вместо WantedBy=default.target. Результат тот же.

sudo systemctl --user --global enable get-list-resources

без sudo и без --global и всё у тебя заработает

eternal_sorrow ★★★★★ ()
Последнее исправление: eternal_sorrow (всего исправлений: 1)

В результате скрипт запускается сразу после запуска иксов в момент появления экрана с логином.

Ну так он у тебя запускается от того пользователя, от имени которого запускается DM (экран с логином). systemctl --global — это включить для всех пользователей, в т. ч. системных.

Попробуй сделать одно из двух:

  1. Выключить глобально (systemctl --global disable get-list-resources) и включить только для того пользователя, для которого это нужно (от имени этого пользователя systemctl --user enable ...), либо

  2. Добавь в юнит проверку на системных пользователей:

    [Unit]
    ConditionUser=!@system
    <...>
    
intelfx ★★★★★ ()
Ответ на: комментарий от intelfx
  1. Не подходит, т.к. любой из сотни пользователей может войти в систему.
  2. При входе вылетает обратно на экран ввода логина/пароля.

Хотелось сделать конечно через systemd, но всё таки я на /etc/xdg/autostart/ запилил это всё. Благодарю dhampire. Времени осталось до конца дня, завтра должно всё работать. В следующий раз поковыряю systemd.

speed_vm ()
Ограничение на отправку комментариев: только для зарегистрированных пользователей