:PROPERTIES: :ID: a602f900-cdcf-4090-9278-d5926d80eedc :END: #+title: systemd transient units #+date: 2021-08-02 12:01:49 +08:00 #+date_modified: 2021-08-02 12:05:06 +08:00 #+language: en You can create units on-the-go with =systemd-run=. Very useful for quickly creating and scheduling one-off services. This tool involves [[id:cd5f0d04-d9bb-44e8-a0f2-630ea58c1e94][systemd services]] and [[id:f1b21fc8-86a5-47cd-b3d8-da6ac7a34427][systemd timers]]. Like most systemd-related binaries, this can be run at system- and user-level (see [[id:c7edff80-6dea-47fc-8ecd-e43b5ab8fb1e][systemd at user-level]]). #+begin_src shell # This will create a user-level service file with the given command as the task. systemd-run --user borgmatic --config emergency-config.yaml --verbose # Create a transient timer for the service. systemd-run --user borg-backup@external-drive.service --on-calendar=12:00 #+end_src The result should give you the generated name of the unit. Then, they can be managed like an ordinary unit.