I have somehow activated 2 update timers

Hi again!!

I set up my microos server to have automatic updates, these are the exact commands I used:
systemctl enable --now transactional-update.timer
sudo vi /etc/transactional-update.conf (then put REBOOT_METHOD=systemd in there)
sudo mkdir /etc/systemd/system/transactional-update.timer.d/
sudo vi /etc/systemd/system/transactional-update.timer.d/local.conf
put
[Timer]
OnCalendar=--* 07:00:00
Persistent=true
in that file.
but later I noticed that the server updated itself and rebooted around 02:00 (i think that’s the default), to check I ran systemctl list-timers transactional-update.timer and that gave the following:
NEXT LEFT LAST PASSED UNIT ACTIVATES
Sun 2026-07-19 07:27:48 CEST 5h 17min Sun 2026-07-19 01:45:12 CEST 25min ago transactional-update.timer transactional-update.service

1 timers listed.
Pass --all to see loaded but inactive timers, too.
~

I’m sure I just did something wrong as it’s my first time setting up a MicroOS server :grin:

The plot thickens lol, just had it update and reboot at 01:16… does anybody have any ideas why?

NEXT LEFT LAST PASSED UNIT ACTIVATES
Tue 2026-07-21 07:47:45 CEST 6h Tue 2026-07-21 01:16:59 CEST - transactional-update.timer transactional-update.service

1 timers listed.
Pass --all to see loaded but inactive timers, too.

I suspect it’s still using the system version of transactional-update.timer you need to run systemctl status transactional-update.timer and where it’s pointing to.

Is it still pointing at the /usr/lib/systemd/system?

1 Like

thank you for helping, really appreciate it :slight_smile: I ran with and without sudo, here’s the output:
systemctl status transactional-update.timer
● transactional-update.timer - Daily update of the system
Loaded: loaded (/usr/lib/systemd/system/transactional-update.timer; enabled; preset: enabled)
Drop-In: /etc/systemd/system/transactional-update.timer.d
└─local.conf
Active: active (waiting) since Tue 2026-07-21 01:18:10 CEST; 25min ago
Invocation: 8686e1ad391f4a16923bfe326a7e790d
Trigger: Tue 2026-07-21 07:47:45 CEST; 6h left
Triggers: ● transactional-update.service
Docs: man:transactional-update(8)

Warning: some journal files were not opened due to insufficient permissions.
tony@localhost:~> sudo systemctl status transactional-update.timer
[sudo] password for root:
● transactional-update.timer - Daily update of the system
Loaded: loaded (/usr/lib/systemd/system/transactional-update.timer; enabled; preset: enabled)
Drop-In: /etc/systemd/system/transactional-update.timer.d
└─local.conf
Active: active (waiting) since Tue 2026-07-21 01:18:10 CEST; 25min ago
Invocation: 8686e1ad391f4a16923bfe326a7e790d
Trigger: Tue 2026-07-21 07:47:45 CEST; 6h left
Triggers: ● transactional-update.service
Docs: man:transactional-update(8)

Jul 21 01:18:10 localhost.localdomain systemd[1]: Started Daily update of the system.

So as you can see it’s still using /usr/lib/systemd/system/transactional-update.timer

So, run;

systemctl stop transactional-update.timer
cp /usr/lib/systemd/system/transactional-update.timer \
   /etc/systemd/system/transactional-update.timer
systemctl daemon-reload
systemctl start transactional-update.timer
systemctl status transactional-update.timer

It should be pointed at the /etc directory and run at your allotted time… You can see how long left before it runs and should match you 7:00 time…

1 Like

@bugperson Have a read here as well… https://documentation.suse.com/sle-micro/6.0/html/Micro-systemd-working-with-timers/index.html

Looks like tou need to add something like;

OnBootSec=5min
OnUnitActiveSec=24h

thank you so much for helping, however I did your steps command by command and it is still showing wrong, maybe I wrote something wrong?

tony@localhost:~> systemctl stop transactional-update.timer
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ====
Authentication is required to stop β€˜transactional-update.timer’.
Authenticating as: root
Password:
==== AUTHENTICATION COMPLETE ====
tony@localhost:~> sudo vi /etc/systemd/system/transactional-update.timer.d/local.conf
[sudo] password for root:
tony@localhost:~> cp /usr/lib/systemd/system/transactional-update.timer \

cp /usr/lib/systemd/system/transactional-update.timer ^C
tony@localhost:~> cp /usr/lib/systemd/system/transactional-update.timer
/etc/systemd/system/transactional-update.timer
cp: cannot create regular file β€˜/etc/systemd/system/transactional-update.timer’: Permission denied
tony@localhost:~> sudo cp /usr/lib/systemd/system/transactional-update.timer
/etc/systemd/system/transactional-update.timer
tony@localhost:~> systemctl daemon-reload
==== AUTHENTICATING FOR org.freedesktop.systemd1.reload-daemon ====
Authentication is required to reload the systemd state.
Authenticating as: root
Password:
==== AUTHENTICATION COMPLETE ====
tony@localhost:~> systemctl start transactional-update.timer
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ====
Authentication is required to start β€˜transactional-update.timer’.
Authenticating as: root
Password:
==== AUTHENTICATION COMPLETE ====
tony@localhost:~> systemctl status transactional-update.timer
● transactional-update.timer - Daily update of the system
Loaded: loaded (/etc/systemd/system/transactional-update.timer; enabled; preset: enabled)
Drop-In: /etc/systemd/system/transactional-update.timer.d
└─local.conf
Active: active (waiting) since Wed 2026-07-22 21:08:56 CEST; 14s ago
Invocation: 3a3322fe0703450990cec001e4ef0769
Trigger: Thu 2026-07-23 00:50:12 CEST; 3h 41min left
Triggers: ● transactional-update.service
Docs: man:transactional-update(8)

Sorry for the delay. OK, so might as well delete the one you copied. I need to fire up a MicroOS instance and check over the weekend.

1 Like

Can you paste the output from /usr/etc/transactional-update.conf?

1 Like

No worries! I appreciate all help, don’t worry I’m not in a hurry :grin:

I think I figured out the issue, somehow I think my transactional-update.conf was invalid or maybe it was overwritten since I never stopped the timer before editing, but I ran sudo vi /etc/systemd/system/transactional-update.timer again and it looked like a preset, so I edited it to look like this:

[Unit]
Description=Daily update of the system
Documentation=man:transactional-update(8)
After=network.target local-fs.target

[Timer]
OnCalendar=--* 07:00:00
AccuracySec=1m
Persistent=true

[Install]
WantedBy=timers.target

then ran:

systemctl daemon-reload
systemctl status transactional-update.timer

and now the output is:

tony@localhost:~> systemctl status transactional-update.timer
● transactional-update.timer - Daily update of the system
     Loaded: loaded (/etc/systemd/system/transactional-update.timer; enabled; preset: enabled)
    Drop-In: /etc/systemd/system/transactional-update.timer.d
             └─local.conf
     Active: active (waiting) since Fri 2026-07-24 07:04:40 CEST; 18h ago
 Invocation: ce66c09e7cf84ed9937583425d9b4b7c
    Trigger: Sat 2026-07-25 07:00:00 CEST; 5h 43min left
   Triggers: ● transactional-update.service
       Docs: man:transactional-update(8)

Warning: some journal files were not opened due to insufficient permissions.

So I think it’s a success :grinning: thank you for all help I wouldn’t have figured it out otherwise! Now just to wait and seee if it actually updates

1 Like

I think it works! if I runsudo snapper list I get the following output:

[sudo] password for root: 
  # β”‚ Type   β”‚ Pre # β”‚ Date                             β”‚ User β”‚ Used Space β”‚ Cleanup β”‚ Description            β”‚ Userdata
────┼────────┼───────┼──────────────────────────────────┼──────┼────────────┼─────────┼────────────────────────┼──────────────
 0  β”‚ single β”‚       β”‚                                  β”‚ root β”‚            β”‚         β”‚ current                β”‚
15  β”‚ single β”‚       β”‚ Fri 17 Jul 2026 07:25:47 AM CEST β”‚ root β”‚  16.12 MiB β”‚ number  β”‚ Snapshot Update of #12 β”‚ important=yes
16  β”‚ single β”‚       β”‚ Sat 18 Jul 2026 12:57:27 AM CEST β”‚ root β”‚   9.69 MiB β”‚ number  β”‚ Snapshot Update of #15 β”‚ important=yes
18  β”‚ single β”‚       β”‚ Sun 19 Jul 2026 01:45:23 AM CEST β”‚ root β”‚  14.03 MiB β”‚ number  β”‚ Snapshot Update of #16 β”‚ important=yes
22  β”‚ single β”‚       β”‚ Tue 21 Jul 2026 01:17:10 AM CEST β”‚ root β”‚  15.05 MiB β”‚ number  β”‚ Snapshot Update of #18 β”‚ important=yes
26  β”‚ single β”‚       β”‚ Thu 23 Jul 2026 12:50:31 AM CEST β”‚ root β”‚  12.42 MiB β”‚ number  β”‚ Snapshot Update of #22 β”‚ important=yes
28  β”‚ single β”‚       β”‚ Fri 24 Jul 2026 07:00:15 AM CEST β”‚ root β”‚   8.12 MiB β”‚ number  β”‚ Snapshot Update of #26 β”‚ important=yes
30  β”‚ single β”‚       β”‚ Sat 25 Jul 2026 07:00:13 AM CEST β”‚ root β”‚  11.09 MiB β”‚ number  β”‚ Snapshot Update of #28 β”‚ important=yes
33  β”‚ single β”‚       β”‚ Mon 27 Jul 2026 07:00:18 AM CEST β”‚ root β”‚  22.81 MiB β”‚ number  β”‚ Snapshot Update of #30 β”‚ important=yes
36  β”‚ single β”‚       β”‚ Thu 30 Jul 2026 07:00:17 AM CEST β”‚ root β”‚  25.74 MiB β”‚ number  β”‚ Snapshot Update of #33 β”‚ important=yes
38  β”‚ single β”‚       β”‚ Fri 31 Jul 2026 07:00:27 AM CEST β”‚ root β”‚  16.23 MiB β”‚ number  β”‚ Snapshot Update of #36 β”‚ important=yes
41  β”‚ single β”‚       β”‚ Sun 02 Aug 2026 07:00:12 AM CEST β”‚ root β”‚  14.57 MiB β”‚ number  β”‚ Snapshot Update of #38 β”‚
45* β”‚ single β”‚       β”‚ Tue 04 Aug 2026 07:00:23 AM CEST β”‚ root β”‚ 164.97 MiB β”‚ number  β”‚ Snapshot Update of #41 β”‚

However, how do I know if it is actually updated things and has rebooted and is using for example the latest kernel?

@bugperson Hi, cat /etc/os-release should suffice.

2 Likes

Thank you SO MUCH for all of the help!!! Works perfectly :slight_smile: :grinning: