-
-
Save hkoba/e05c91ebdd4e2ffd1d79e78e76cf1ff5 to your computer and use it in GitHub Desktop.
[Unit] | |
Description=Scheduled Reboot | |
[Service] | |
Type=simple | |
ExecStart=/usr/bin/systemctl --force reboot |
[Unit] | |
Description=Reboot Scheduling. | |
[Timer] | |
OnCalendar=*-*-* 01:30:00 | |
[Install] | |
WantedBy=multi-user.target |
Hi! Thank you for your comment.
When I wrote above, I didn't understand I can write Unit
in Timer section. I will try your code next week. Thank you!
man 7 systemd.special
reboot.target
A special target unit for shutting down and rebooting the system.
Applications wanting to reboot the system should not start this unit directly, but should instead execute
systemctl reboot (possibly with the --no-block option) or call systemd-logind(8)'s
org.freedesktop.login1.Manager.Reboot D-Bus method directly.
runlevel6.target is an alias for this target unit, for compatibility with SysV.
Hi!
Thank you for pointing this. I didn't know it.
man 7 systemd.special
If you want to store your custom services' files somewhere out of /etc/systemd/system
to make it easier to change the reboot hour for instance, you can use:
cd /correct/path/to/your/two/files
systemctl link ./sched-reboot.service
systemctl link ./sched-reboot.timer
So there are sym links in the place of the service and timer, directing to your files stored where you want.
Then, as Xeboc said above, don't forget to run:
systemctl daemon-reload
systemctl enable sched-reboot.timer
And finally you can check that your service and timer are correctly registered with:
systemctl status sched-reboot.timer
systemctl status sched-reboot.service
You should have Triggers: ● sched-reboot.service
on the timer, and TriggeredBy: ○ sched-reboot.timer
on the service.
If you don't need persistence, you can use systemd-run
to schedule the reboot fairly easily:
sudo systemd-run --on-calendar='2024-02-01 23:45 UTC' -- systemctl reboot --force
You also need to issue the start command to enable to timer schedule:
systemctl start sched-reboot.timer
Why add a "service" when you can specify a unit in the timer itself?
Am I missing something?