LINUX.ORG.RU
ФорумAdmin

systemd

 , ,


0

2

Хотел настроить systemd для запуска уведомлений. Для этого я создал службу и таймер:

/etc/systemd/system/battery-notification.service
[Unit]
Description=Battery Notification Service

[Service]
ExecStart=/home/iskander/.local/bin/battery-notification.sh

[Install]
WantedBy=battery-notification.timer

[Unit]
Description=Battery Notification Timer

[Timer]
OnActiveSec=2min
OnUnitActiveSec=2min

[Install]
WantedBy=timers.target

. После перезапустил демоны

sudo systemctl daemon-reload
и запустил службу
sudo systemctl enable --now battery-notification.timer
, но уведомления не приходят



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

Ещё одна жертва sudo, походу.

ExecStart=/home/iskander/.local/bin/battery-notification.sh

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

Рут - это пользователь, от которого запущено systemd.

И про твой гуи-сеанс он ничего не знает.

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

Логи здесь:

journalctl -u battery-notification.service -u battery-notification.timer
littlechris ★★★
()
Ответ на: комментарий от firkax

sudo нужно. А система разделения прав только мешает на домашней системе, если она однопользовательская.

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

А система разделения прав только мешает

Система разделения прав защищает систему не только от уязвимостей, но и от случайных крашей пользовательского ПО которые способны положить систему.

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

Да не сильно спасает. От багов графических драйверов (а это одна из самых частых причин падения системы) она не спасает никак.

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

В плане безопасности — да (если владельца файла тоже не забыть сменить и права проверить, конечно), хотя правильнее будет в /usr/local/bin — то, что не local — для пакетного менеджера, а не рук админа. В плане того, что рут ничего не знает о твоём графическом сеансе — нет. Запускай от юзера, а не от рута. Либо системный юнит, но со сменой пользователя, либо юзерский юнит вообще. А ещё лучше выкинь systemd и заюзай cron, crontab -e от юзера.

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

Я переместил службу, скрипт и таймер в ~/.config/systemd/user/, отредактировал расположение скрипта в службе на ~/.local/bin/battery-notification.sh и запустил службы через опцию –user и всё заработало. Спасибо

iskander9908
() автор топика
Ответ на: комментарий от Werenter

От багов графических драйверов

Дрова графики работают в пространстве ядра, там без вариантов. А я говорю за проги запускаемые в юзерспейсе.

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

sudo нужно

Да.

А система разделения прав только мешает на домашней системе, если она однопользовательская

Нет.

eternal_sorrow ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.