0
0
Linux CLIscripting~10 mins

systemd timers in Linux CLI - Step-by-Step Execution

Choose your learning style9 modes available
Concept Flow - systemd timers
Create .service file
Create .timer file
Enable timer with systemctl
Timer triggers at set time
systemd runs .service file
Service executes task
Timer waits for next trigger
This flow shows how systemd timers work: you create a service and a timer file, enable the timer, and systemd runs the service at scheduled times.
Execution Sample
Linux CLI
[Unit]
Description=Run my script

[Service]
Type=oneshot
ExecStart=/usr/bin/echo Hello from systemd timer

--- myjob.service ---

[Unit]
Description=Timer for myjob

[Timer]
OnBootSec=10s
Unit=myjob.service

[Install]
WantedBy=timers.target

--- myjob.timer ---
This example defines a service that echoes a message and a timer that triggers it 10 seconds after boot.
Execution Table
StepActionEvaluationResult
1Create myjob.service fileFile created with echo commandService ready to run
2Create myjob.timer fileTimer set to trigger 10 seconds after bootTimer ready to trigger service
3Enable timer with systemctlsystemctl enable myjob.timerTimer enabled and started
4System bootsTimer counts 10 secondsTimer triggers service
5systemd runs myjob.serviceExecStart runs echo commandOutput: Hello from systemd timer
6Timer waits for next triggerNo repeat set, timer stopsTimer inactive until next boot or manual start
💡 Timer stops because no repeat interval is set; service ran once after 10 seconds from boot
Variable Tracker
VariableStartAfter Step 3After Step 4After Step 5Final
Timer Stateinactiveactive (enabled)counting downtriggeredinactive (no repeat)
Service Statenot runningnot runningnot runningrunningcompleted
Key Moments - 3 Insights
Why doesn't the service run immediately after enabling the timer?
Because the timer is set with OnBootSec=10s, it waits 10 seconds after boot before triggering the service, as shown in execution_table step 4.
What happens if the timer has no repeat interval?
The timer triggers the service once and then becomes inactive, as seen in execution_table step 6.
How does systemd know which service to run when the timer triggers?
The timer file specifies the Unit=myjob.service, linking the timer to the service, as shown in the execution_sample code and step 2.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the Timer State after step 4?
Ainactive
Btriggered
Ccounting down
Dactive but not counting
💡 Hint
Check variable_tracker Timer State column after Step 4
At which step does the service actually run the echo command?
AStep 3
BStep 5
CStep 4
DStep 6
💡 Hint
Look at execution_table Action and Result columns for when ExecStart runs
If you want the timer to run the service every minute, what would change in the timer file?
AChange OnBootSec=10s to OnUnitActiveSec=1min
BChange Unit=myjob.service to Unit=myjob.timer
CRemove the [Timer] section
DAdd Type=oneshot to the timer file
💡 Hint
Refer to execution_sample and think about timer scheduling options
Concept Snapshot
systemd timers run tasks on schedule.
Create a .service file for the task.
Create a .timer file to schedule it.
Enable timer with systemctl.
Timer triggers service at set times.
Useful for automation without cron.
Full Transcript
Systemd timers automate running tasks by linking a timer file to a service file. First, you create a service file that defines what to run, like a script or command. Then, you create a timer file that tells systemd when to run that service, for example, 10 seconds after boot. You enable the timer with systemctl, which starts counting. When the timer reaches the set time, systemd runs the service. If no repeat is set, the timer stops after running once. This method is a modern alternative to cron for scheduling tasks.