[Gelöst] Systemd-Service startet bei jeden Boot statt einmal am Tag

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
Benutzeravatar
thunder11
Beiträge: 2502
Registriert: 19.04.2023 09:08:30

[Gelöst] Systemd-Service startet bei jeden Boot statt einmal am Tag

Beitrag von thunder11 » 27.01.2025 18:52:57

Ich hatte mir vor langer Zeit einen Service angelegt, der einmal am Tag mein / putzen sollte.
Das lief auch lange so wie gewünscht.
Neuerdings startet der Service aber nach jedem Booten
Aus dem Journal (jeweils beim Neustart):

Code: Alles auswählen

Jan 26 08:14:53 XFCE systemd[1]: Started Bleachbit.service - Reinigung /home.
Jan 26 08:19:38 XFCE systemd[1]: Started Bleachbit.service - Reinigung /home.
Jan 26 20:09:24 XFCE systemd[1]: Started Bleachbit.service - Reinigung /home.
Jan 27 09:08:49 XFCE systemd[1]: Started Bleachbit.service - Reinigung /home.
Jan 27 17:13:08 XFCE systemd[1]: Started Bleachbit.service - Reinigung /home.
Dazu gehört ein Timer:

Code: Alles auswählen

cat  /etc/systemd/system/Bleachbit.timer
[Unit]
Description=Reinigung /home
[Timer]
OnCalendar=*-*-* 11:0:00
[Install]
WantedBy=timers.target
Und der Service

Code: Alles auswählen

cat /etc/systemd/system/Bleachbit.service 
[Unit]
Description=Reinigung /home

[Service]
User=root
ExecStart=/home/thunder/Dokumente/Skripte/Bleachbit_als_root

[Install]
WantedBy=multi-user.target
Das Skript dazu:

Code: Alles auswählen

cat /home/thunder/Dokumente/Skripte/Bleachbit_als_root
#!/bin/sh

# sleep 20

pkexec bleachbit --preset -c>/home/thunder/bleachbit_root.log

exit
Status Timer / Service :

Code: Alles auswählen

systemctl status Bleachbit.timer
○ Bleachbit.timer - Reinigung /home
     Loaded: loaded (/etc/systemd/system/Bleachbit.timer; disabled; preset: enabled)
     Active: inactive (dead)
    Trigger: n/a
   Triggers: ● Bleachbit.service

Code: Alles auswählen

~$ systemctl status Bleachbit.service
○ Bleachbit.service - Reinigung /home
     Loaded: loaded (/etc/systemd/system/Bleachbit.service; enabled; preset: enabled)
     Active: inactive (dead) since Mon 2025-01-27 17:14:38 CET; 1h 29min ago
   Duration: 1min 30.340s
 Invocation: 9718cb5e5e39424993cd5de6deb91a24
    Process: 981 ExecStart=/home/thunder/Dokumente/Skripte/Bleachbit_als_root (code=exited, status=0/SUCCESS)
   Main PID: 981 (code=exited, status=0/SUCCESS)
   Mem peak: 925.3M
        CPU: 8.826s

Jan 27 17:13:08 XFCE systemd[1]: Started Bleachbit.service - Reinigung /home.
Jan 27 17:13:08 XFCE pkexec[993]: pam_unix(polkit-1:session): session opened for user root(uid=0) by (uid=0)
Jan 27 17:13:08 XFCE pkexec[993]: root: Executing command [USER=root] [TTY=unknown] [CWD=/] [COMMAND=/usr/bin/bleachbit --preset -c]
Jan 27 17:13:08 XFCE Bleachbit_als_root[993]: unexpected session loginctl: No
Jan 27 17:13:08 XFCE pkexec[993]: gdk_screen_get_root_window: assertion 'GDK_IS_SCREEN (screen)' failed
Jan 27 17:14:38 XFCE systemd[1]: Bleachbit.service: Deactivated successfully.
Jan 27 17:14:38 XFCE systemd[1]: Bleachbit.service: Consumed 8.826s CPU time, 925.3M memory peak.
Frage:
Was ist an dem Timer falsch ?
Zuletzt geändert von thunder11 am 28.01.2025 11:29:35, insgesamt 1-mal geändert.

mat6937
Beiträge: 3489
Registriert: 09.12.2014 10:44:00

Re: Systemd-Service startet bei jeden Boot statt einmal am Tag

Beitrag von mat6937 » 27.01.2025 19:26:17

thunder11 hat geschrieben: ↑ zum Beitrag ↑
27.01.2025 18:52:57
Neuerdings startet der Service aber nach jedem Booten

Code: Alles auswählen

Jan 26 08:19:38 XFCE systemd[1]: Started Bleachbit.service - Reinigung /home.
Dazu gehört ein Timer:
Eine service-unit die von einer timer-unit gestartet wird, sollte disabled (deaktiviert) sein. Wie sind die Ausgaben von:

Code: Alles auswählen

systemctl is-enabled Bleachbit.service
systemctl status Bleachbit.service | grep -i trigger
systemctl list-timers --all | grep -i Bleachbit
?
Debian 12.10 mit LXDE, OpenBSD 7.6 mit i3wm, FreeBSD 14.2 mit Xfce

Benutzeravatar
thunder11
Beiträge: 2502
Registriert: 19.04.2023 09:08:30

Re: Systemd-Service startet bei jeden Boot statt einmal am Tag

Beitrag von thunder11 » 27.01.2025 19:48:05

Code: Alles auswählen

~$ systemctl list-timers --all | grep -i Bleachbit
nix

Code: Alles auswählen

$ systemctl is-enabled Bleachbit.service
enabled

Code: Alles auswählen

systemctl status Bleachbit.service | grep -i trigger
nix

mat6937
Beiträge: 3489
Registriert: 09.12.2014 10:44:00

Re: Systemd-Service startet bei jeden Boot statt einmal am Tag

Beitrag von mat6937 » 27.01.2025 19:53:21

thunder11 hat geschrieben: ↑ zum Beitrag ↑
27.01.2025 19:48:05

Code: Alles auswählen

$ systemctl is-enabled Bleachbit.service
enabled
Das ist schon mal falsch und deine timer-unit ist auch nicht aktiviert (enabled).
Wie ist die Ausgabe von:

Code: Alles auswählen

systemctl is-enabled Bleachbit.timer
systemctl is-active Bleachbit.timer
?
Debian 12.10 mit LXDE, OpenBSD 7.6 mit i3wm, FreeBSD 14.2 mit Xfce

Benutzeravatar
thunder11
Beiträge: 2502
Registriert: 19.04.2023 09:08:30

Re: Systemd-Service startet bei jeden Boot statt einmal am Tag

Beitrag von thunder11 » 27.01.2025 19:57:00

Der Fehler saß mal wieder vor dem Bildschirm. :facepalm: :facepalm:
Ich hatte den Timer in Debiancockpit deaktiviert -- weiss noch nicht mal mehr wann und warum :|

Code: Alles auswählen

systemctl list-timers --all | grep -i Bleachbit
Tue 2025-01-28 11:00:00 CET      15h -                                      - Bleachbit.timer              Bleachbit.service

Code: Alles auswählen

systemctl status Bleachbit.timer
● Bleachbit.timer - Reinigung /home
     Loaded: loaded (/etc/systemd/system/Bleachbit.timer; enabled; preset: enabled)
     Active: active (waiting) since Mon 2025-01-27 19:50:03 CET; 1min 7s ago
 Invocation: 9da5184c9b4a45eb916913eab559acc3
    Trigger: Tue 2025-01-28 11:00:00 CET; 15h left
   Triggers: ● Bleachbit.service

Jan 27 19:50:03 XFCE systemd[1]: Started Bleachbit.timer - Reinigung /home.
Dann ist erstmal gut. Bis morgen 11;Uhr :mrgreen:

Danke für den Wink mit dem Zaunpfahl :hail:
Zuletzt geändert von thunder11 am 27.01.2025 20:02:57, insgesamt 1-mal geändert.

mat6937
Beiträge: 3489
Registriert: 09.12.2014 10:44:00

Re: Systemd-Service startet bei jeden Boot statt einmal am Tag

Beitrag von mat6937 » 27.01.2025 20:00:20

thunder11 hat geschrieben: ↑ zum Beitrag ↑
27.01.2025 19:57:00
Dann ist erstmal gut.
BTW: Hast Du den timer jetzt manuell gestartet, ohne dass dieser enabled ist? Wenn ja, dann wird der timer nach dem reboot (ohne manuelles Eingreifen) nicht aktiv sein.
Debian 12.10 mit LXDE, OpenBSD 7.6 mit i3wm, FreeBSD 14.2 mit Xfce

Benutzeravatar
thunder11
Beiträge: 2502
Registriert: 19.04.2023 09:08:30

Re: Systemd-Service startet bei jeden Boot statt einmal am Tag

Beitrag von thunder11 » 27.01.2025 20:12:16

hmm - irgendwas stimmt nicht
hab den nochmal "enabled":

Code: Alles auswählen

systemctl enable Bleachbit.timer
neu gestartet:
Bleachbit läuft wieder an. :twisted:

Benutzeravatar
thunder11
Beiträge: 2502
Registriert: 19.04.2023 09:08:30

Re: Systemd-Service startet bei jeden Boot statt einmal am Tag

Beitrag von thunder11 » 27.01.2025 20:16:59

Nochmal gestartet: das selbe Spiel :twisted:

Code: Alles auswählen

hunder@XFCE:~$ systemctl status Bleachbit.service
● Bleachbit.service - Reinigung /home
     Loaded: loaded (/etc/systemd/system/Bleachbit.service; enabled; preset: enabled)
     Active: active (running) since Mon 2025-01-27 20:13:05 CET; 54s ago
 Invocation: d6d1d7623bf5488f866567a5e3bc13c1
TriggeredBy: ● Bleachbit.timer
   Main PID: 917 (Bleachbit_als_r)
      Tasks: 2 (limit: 38092)
     Memory: 694.9M (peak: 694.9M)
        CPU: 4.670s
     CGroup: /system.slice/Bleachbit.service
             ├─917 /bin/sh /home/thunder/Dokumente/Skripte/Bleachbit_als_root
             └─926 /usr/bin/python3 /usr/bin/bleachbit --preset -c

Jan 27 20:13:05 XFCE Bleachbit_als_root[926]: unexpected session loginctl: No
Jan 27 20:13:05 XFCE pkexec[926]: pam_unix(polkit-1:session): session opened for user root(uid=0) b>
Jan 27 20:13:05 XFCE pkexec[926]: root: Executing command [USER=root] [TTY=unknown] [CWD=/] [COMMAN>
Jan 27 20:13:05 XFCE systemd[1]: Started Bleachbit.service - Reinigung /home.
Jan 27 20:13:05 XFCE bleachbit[926]: gdk_screen_get_root_window: assertion 'GDK_IS_SCREEN (screen)'>

Code: Alles auswählen

thunder@XFCE:~$ systemctl status Bleachbit.timer
● Bleachbit.timer - Reinigung /home
     Loaded: loaded (/etc/systemd/system/Bleachbit.timer; enabled; preset: enabled)
     Active: active (waiting) since Mon 2025-01-27 20:13:04 CET; 58s ago
 Invocation: 0089506fb77342eb9eed0db4d81717a2
    Trigger: Tue 2025-01-28 11:00:00 CET; 14h left
   Triggers: ● Bleachbit.service

Jan 27 20:13:04 XFCE systemd[1]: Started Bleachbit.timer - Reinigung /home.
thunder@XFCE:~$ 
Was ist das los ??????

Benutzeravatar
Huo
Beiträge: 831
Registriert: 26.11.2017 14:03:31
Wohnort: Freiburg

Re: Systemd-Service startet bei jeden Boot statt einmal am Tag

Beitrag von Huo » 27.01.2025 20:58:27

Ich bin kein Systemd-Experte, vermute aber, die Zeilen

Code: Alles auswählen

[Install]
WantedBy=multi-user.target
im Service Unit /etc/systemd/system/Bleachbit.service bewirken, dass der Dienst bei jedem Systemstart gestartet wird. Um den Start vom Timer regeln zu lassen, solltest Du wohl den [Install]-Abschnitt ersatzlos streichen.

JTH
Moderator
Beiträge: 3090
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: Systemd-Service startet bei jeden Boot statt einmal am Tag

Beitrag von JTH » 27.01.2025 21:00:38

Huo hat geschrieben: ↑ zum Beitrag ↑
27.01.2025 20:58:27
Um den Start vom Timer regeln zu lassen, solltest Du wohl den [Install]-Abschnitt ersatzlos streichen.
Jo, das ist mit die Ursache. Vorher solltest du noch

Code: Alles auswählen

systemctl disable Bleachbit.service
ausführen.
Manchmal bekannt als Just (another) Terminal Hacker.

Benutzeravatar
thunder11
Beiträge: 2502
Registriert: 19.04.2023 09:08:30

Re: Systemd-Service startet bei jeden Boot statt einmal am Tag

Beitrag von thunder11 » 27.01.2025 22:09:39

Ok hab ich gemacht. Jetzt:

Code: Alles auswählen

cat /etc/systemd/system/Bleachbit.service 
[Unit]
Description=Reinigung /home

[Service]
User=root
ExecStart=/home/thunder/Dokumente/Skripte/Bleachbit_als_root
Bei eine erneuten "enable" kommt jetzt zwar die Fehlermeldung:

Code: Alles auswählen

systemctl enable Bleachbit.service
The unit files have no installation config (WantedBy=, RequiredBy=, UpheldBy=,
Also=, or Alias= settings in the [Install] section, and DefaultInstance= for
template units). This means they are not meant to be enabled or disabled using systemctl.
 
Possible reasons for having these kinds of units are:
• A unit may be statically enabled by being symlinked from another unit's
  .wants/, .requires/, or .upholds/ directory.
• A unit's purpose may be to act as a helper for some other unit which has
  a requirement dependency on it.
• A unit may be started when needed via activation (socket, path, timer,
  D-Bus, udev, scripted systemctl call, ...).
• In case of template units, the unit is meant to be enabled with some
  instance name specified.
Schein aber o.K. zu sein, das ja da auch steht:
A unit may be started when needed via activation (socket, path, timer,
D-Bus, udev, scripted systemctl call, ...).

JTH
Moderator
Beiträge: 3090
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: Systemd-Service startet bei jeden Boot statt einmal am Tag

Beitrag von JTH » 27.01.2025 22:10:19

Du sollst ihn ja auch nicht enablen. Wenn du einen Service einmalig von Hand starten willst, machst du das mit systemcl start.

systemctl enable + [Install] WantedBy sort dafür, dass ein Dienst in den vorgesehen Situationen automatisch startet, eben z.B. beim Boot. Das willst du ja gerade nicht.
Manchmal bekannt als Just (another) Terminal Hacker.

mat6937
Beiträge: 3489
Registriert: 09.12.2014 10:44:00

Re: Systemd-Service startet bei jeden Boot statt einmal am Tag

Beitrag von mat6937 » 27.01.2025 22:16:44

thunder11 hat geschrieben: ↑ zum Beitrag ↑
27.01.2025 22:09:39
Bei eine erneuten "enable" kommt jetzt zwar die Fehlermeldung:

Code: Alles auswählen

systemctl enable Bleachbit.service
The unit files have no installation config (WantedBy=, RequiredBy=, UpheldBy=,
Also=, or Alias= settings in the [Install] section, and DefaultInstance= for
template units). This means they are not meant to be enabled or disabled using systemctl.
BTW: Meine service-units die (dann später nach dem testen) nur via timer-unit gestartet werden, habe alle noch die (wirksame) [Install]-Section. Denn es ist richtig, dass diese beim Start via timer-unit nicht mehr benötigt wird, aber sie schadet auch nicht bzw. verursacht keine Probleme wenn sie noch vorhanden ist. Die service-unit sollte aber (beim start via timer-unit) disabled sein.
Debian 12.10 mit LXDE, OpenBSD 7.6 mit i3wm, FreeBSD 14.2 mit Xfce

Benutzeravatar
thunder11
Beiträge: 2502
Registriert: 19.04.2023 09:08:30

Re: Systemd-Service startet bei jeden Boot statt einmal am Tag

Beitrag von thunder11 » 27.01.2025 22:19:18

hatte ihn doch vorher (vor der Änderung) "disabled"

Hab jetzt einen Neustart gemacht:

Code: Alles auswählen

journalctl -b |grep -i bleach
Jan 27 22:10:25 XFCE systemd[1]: Started Bleachbit.timer - Reinigung /home.

Code: Alles auswählen

systemctl status Bleachbit.service
○ Bleachbit.service - Reinigung /home
     Loaded: loaded (/etc/systemd/system/Bleachbit.service; static)
     Active: inactive (dead)
TriggeredBy: ● Bleachbit.timer
Sieht doch gut aus ?

mat6937
Beiträge: 3489
Registriert: 09.12.2014 10:44:00

Re: Systemd-Service startet bei jeden Boot statt einmal am Tag

Beitrag von mat6937 » 27.01.2025 22:22:34

thunder11 hat geschrieben: ↑ zum Beitrag ↑
27.01.2025 22:19:18
hatte ihn doch vorher (vor der Änderung) "disabled"
Ja, und dann hast Du die (deaktivierte) service-unit nochmal manuell testen (starten) wollen und hast fälschlicherweise, enable statt start benutzt (siehe oben).

Code: Alles auswählen

systemctl enable Bleachbit.service
Das kann schon mal passieren.
Debian 12.10 mit LXDE, OpenBSD 7.6 mit i3wm, FreeBSD 14.2 mit Xfce

Benutzeravatar
thunder11
Beiträge: 2502
Registriert: 19.04.2023 09:08:30

Re: Systemd-Service startet bei jeden Boot statt einmal am Tag

Beitrag von thunder11 » 27.01.2025 22:30:50

Testen wollte ich die nicht. Die ist ja heute schon oft genug gestartet.
Bisher hatte ich das so verstanden, dass ein Dienst, der disabled ist dann halt auch nicht startet.
Auch nicht per Timer.
Bin jetzt aber eines besseren belehrt worden.
Aber Systemd war ja intelligent genug, das richtig zu rücken. :D
Na dann warte ich mal bis morgen 11:00 Uhr :mrgreen:

Benutzeravatar
thunder11
Beiträge: 2502
Registriert: 19.04.2023 09:08:30

Re: Systemd-Service startet bei jeden Boot statt einmal am Tag

Beitrag von thunder11 » 28.01.2025 11:28:50

Alles wieder gut :THX: :hail:

Code: Alles auswählen

$ journalctl -b |grep -i bleach
Jan 28 08:01:41 XFCE systemd[1]: Started Bleachbit.timer - Reinigung /home.
Jan 28 11:00:01 XFCE systemd[1]: Started Bleachbit.service - Reinigung /home.
Jan 28 11:00:01 XFCE pkexec[190246]: root: Executing command [USER=root] [TTY=unknown] [CWD=/] [COMMAND=/usr/bin/bleachbit --preset -c]
Jan 28 11:00:19 XFCE systemd[1]: Bleachbit.service: Deactivated successfully.
Jan 28 11:00:19 XFCE systemd[1]: Bleachbit.service: Consumed 8.604s CPU time, 931.1M memory peak.
Mal das Ende des Protokolls:

Code: Alles auswählen

[.....]
apt-get clean 313MB 
Wiedergewonnener Speicherplatz: 369,9MB
Gelöschte Dateien: 934
Spezialvorgänge: 1

Antworten