Systemd/timers: Difference between revisions
Appearance
	
	
imported>Onny  Add example systemd unit configuration  | 
				imported>Onny mNo edit summary  | 
				||
| Line 6: | Line 6: | ||
<syntaxHighlight lang="nix">  | <syntaxHighlight lang="nix">  | ||
systemd.timers."  | systemd.timers."hello-world" = {  | ||
   wantedBy = [ "timers.target" ];  |    wantedBy = [ "timers.target" ];  | ||
     timerConfig = {  |      timerConfig = {  | ||
       OnBootSec = "5m";  |        OnBootSec = "5m";  | ||
       OnUnitActiveSec = "5m";  |        OnUnitActiveSec = "5m";  | ||
       Unit = "  |        Unit = "hello-world.service";  | ||
     };  |      };  | ||
};  | };  | ||
systemd.services."  | systemd.services."hello-world" = {  | ||
   script = ''  |    script = ''  | ||
     set -eu  |      set -eu  | ||
Revision as of 13:21, 26 November 2022
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.
Example usage
Following 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";
  };
};