LINUX.ORG.RU
ФорумAdmin

systemd. запуск пользовательских кастомных служб

 , , ,


0

1

Задача
запускать /usr/bin/xbindkeys при входе в систему

Реализовал

~/.local/share/systemd/user/xbindkeys.service
[Unit]
Description=XBindKeys key grabber
After=environment.target

[Service]
ExecStart=/usr/bin/xbindkeys
KillMode=process

[Install]
WantedBy=default.target

Запускаю
systemctl –user enable –now xbindkeys.service
все хорошо, ошибок не сообщает

Проблема
после выхода-входа /usr/bin/xbindkeys не запущен
в journalctl –user -u xbindkeys.service ошибок не сообщает

почему не работает автозапуск?

★★★★★

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

почему не работает автозапуск?

Потому что systemd --user запускается по одному на пользователя, а не по одному на сессию, и делает он это до того, как начинается исполнение лидера графической сессии.

Таким образом, переменные окружения из графической сессии, в частности $DISPLAY, не попадают в окружение systemd --user.

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

запущен вроде

$ systemctl --user status xbindkeys.service
○ xbindkeys.service - XBindKeys key grabber
     Loaded: loaded (/home/bm/.local/share/systemd/user/xbindkeys.service; enabled; preset: enabled)
     Active: inactive (dead) since Sun 2023-01-22 17:11:02 MSK; 18h ago
   Duration: 4ms
   Main PID: 2307 (code=exited, status=0/SUCCESS)
        CPU: 5ms

янв 22 17:11:02 BURNE systemd[2297]: Started xbindkeys.service.

эффекта ноль

brothermechanic ★★★★★
() автор топика
Ответ на: комментарий от eternal_sorrow

точно!

спасибо!

проверил systemctl --user start xbindkeys.service запускает inactive (dead) процесс

почему?

$ journalctl -–user -u xbindkeys.service
...
янв 23 11:47:28 BURNE systemd[2297]: Started xbindkeys.service.
brothermechanic ★★★★★
() автор топика
Последнее исправление: brothermechanic (всего исправлений: 1)
Ответ на: комментарий от eternal_sorrow

Пересоздал сервис

systemctl --user disable xbindkeys.service
systemctl --user enable xbindkeys.service

вроде запустилось

$ systemctl --user status xbindkeys.service
○ xbindkeys.service - XBindKeys key grabber
     Loaded: loaded (/home/bm/.local/share/systemd/user/xbindkeys.service; enabled; preset: enabled)
     Active: inactive (dead) since Mon 2023-01-23 11:53:27 MSK; 1min 47s ago
   Duration: 4ms
    Process: 56327 ExecStart=/usr/bin/xbindkeys (code=exited, status=0/SUCCESS)
   Main PID: 56327 (code=exited, status=0/SUCCESS)
      Tasks: 1 (limit: 38470)
     Memory: 328.0K
        CPU: 54ms
     CGroup: /user.slice/user-1000.slice/user@1000.service/app.slice/xbindkeys.service
             └─56329 /usr/bin/xbindkeys

Буду проверять после перезагрузки пользователя

brothermechanic ★★★★★
() автор топика
Последнее исправление: brothermechanic (всего исправлений: 1)
Ответ на: комментарий от brothermechanic

нет, всё ещё inactive. теперь виден код выхода - 0. то есть процесс завершается без ошибок.

руками в терминале стартует процесс /usr/bin/xbindkeys? или так же стартует и завершается?

eternal_sorrow ★★★★★
()
Ответ на: комментарий от eternal_sorrow

спасибо за помощь!

да, /usr/bin/xbindkeys стартует

и systemctl --user start xbindkeys.service стартует

не стартует автозапуск

вот такую строчку в логе нашел
systemd[2298]: xbindkeys.service: Unit process 2310 (xbindkeys) remains running after unit stopped.

brothermechanic ★★★★★
() автор топика

Нет, не победил

запускается, но потом все…. сразу убивается

янв 25 10:36:51 BURNE systemd[2301]: Started xbindkeys.service.
░░ Subject: Запуск юнита UNIT завершен
░░ Defined-By: systemd
░░ Support: https://gentoo.org/support/
░░ 
░░ Процесс запуска юнита UNIT был завершен.
░░ 
░░ Результат: done.
янв 25 10:36:51 BURNE systemd[2301]: xbindkeys.service: Unit process 2312 (xbindkeys) remains running after unit stopped.
янв 25 10:36:51 BURNE systemd[2301]: xbindkeys.service: Unit process 2313 (xbindkeys) remains running after unit stopped.

что за рыба?

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