Для того чтобы потыкать
systemd не обязательно обладать рутовскими правами или судой-мудой. Да, ты не ослышался, всё можно запускать под обычным юзером.Делается это так:
systemctl --user enable bashdays.timer
Ключ
--user означает, что команда применяется в пользовательском пространстве, а не на уровне всей системы.ㅤ
Теперь этот юнит будет запускаться каждый раз при старте пользовательской сессии, а таймер начнет тикать.
Эта штука создаёт символическую ссылку в
~/.config/systemd/user/ в директории default.target.wants/Если тебе нужно разово запустить такой юнит, то
enable меняем на start. Вот и вся наука.А как отлаживать?
➡️ 1. Сначала нужно убедиться что таймер активен:
systemctl --user status bashdays.timer
Если всё ок, то увидишь
Active: active (waiting).➡️ 2. Смотрим расписание запуска
systemctl --user list-timers
-
NEXT — когда следующий запуск-
LEFT — сколько осталось времени-
LAST — когда запускался в прошлый раз-
UNIT — имя таймера➡️ 3. Проверяем выполнялся ли сервис
journalctl --user-unit bashdays.service --since "1 hour ago"
Команда покажет логи выполнения скрипта. Можно сузить диапазон, например так:
journalctl --user-unit bashdays.service --since today
По дебагу это основное. Мелочи вроде синтаксических ошибок и т.п. рассматривать не будем, тут уже от кривизны рук все зависит.
Ну а так всё что нужно тебе знать. То есть у каждого пользователя могут быть свои юниты и сервисы, а не только у рута.
🛠 #linux #tricks #debug #systemd #bash
—
✅ @bashdays / @linuxfactory / @blog