Systemd/timers: Difference between revisions
imported>Onny mNo edit summary |
imported>Onny Further usage info |
||
Line 1: | Line 1: | ||
Timers are systemd unit files whose name ends in .timer that control .service files or events. Timers can be used as an alternative to cron. Timers have built-in support for calendar time events, monotonic time events, and can be run asynchronously. | Timers are systemd unit files whose name ends in .timer that control .service files or events. Timers can be used as an alternative to cron. Timers have built-in support for calendar time events, monotonic time events, and can be run asynchronously. | ||
== | == Configuration == | ||
Following timer runs a systemd unit every 5 minutes which invokes a bash script | Following example timer runs a systemd unit every 5 minutes which invokes a bash script | ||
<syntaxHighlight lang="nix"> | <syntaxHighlight lang="nix"> | ||
Line 26: | Line 26: | ||
}; | }; | ||
</syntaxHighlight> | </syntaxHighlight> | ||
== Usage == | |||
List active timers and their current state | |||
<syntaxhighlight lang="bash"> | |||
systemctl list-timers | |||
</syntaxhighlight> | |||
Manually run service once for testing purpose | |||
<syntaxhighlight lang="bash"> | |||
systemctl start hello-world | |||
</syntaxhighlight> |
Revision as of 13:06, 1 January 2023
Timers are systemd unit files whose name ends in .timer that control .service files or events. Timers can be used as an alternative to cron. Timers have built-in support for calendar time events, monotonic time events, and can be run asynchronously.
Configuration
Following example timer runs a systemd unit every 5 minutes which invokes a bash script
systemd.timers."hello-world" = {
wantedBy = [ "timers.target" ];
timerConfig = {
OnBootSec = "5m";
OnUnitActiveSec = "5m";
Unit = "hello-world.service";
};
};
systemd.services."hello-world" = {
script = ''
set -eu
${pkgs.coreutils}/bin/echo "Hello World"
'';
serviceConfig = {
Type = "oneshot";
User= "nobody";
};
};
Usage
List active timers and their current state
systemctl list-timers
Manually run service once for testing purpose
systemctl start hello-world