about summary refs log tree commit diff
path: root/users/wpcarro/website/blog/posts/auto-reboot-nixos.md
diff options
context:
space:
mode:
authorWilliam Carroll <wpcarro@gmail.com>2022-01-31T22·30-0800
committerclbot <clbot@tvl.fyi>2022-01-31T22·34+0000
commite1833e95f2ba403dede7befc0f2a9a6cb333f22d (patch)
tree1076a4a5a5ef65ec82155e27e8e1b4fb41ba543e /users/wpcarro/website/blog/posts/auto-reboot-nixos.md
parent3220b38d03e9f690bf514b2426d664b9e30a0087 (diff)
feat(wpcarro/blog): Create short post about scheduled reboots r/3729
Slowly building the habit of blogging more (especially about nix).

Change-Id: I13006a6555d746ab55b4b282ea83bc732573a58e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5149
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
Diffstat (limited to '')
-rw-r--r--users/wpcarro/website/blog/posts/auto-reboot-nixos.md40
1 files changed, 40 insertions, 0 deletions
diff --git a/users/wpcarro/website/blog/posts/auto-reboot-nixos.md b/users/wpcarro/website/blog/posts/auto-reboot-nixos.md
new file mode 100644
index 0000000000..24474e6dfe
--- /dev/null
+++ b/users/wpcarro/website/blog/posts/auto-reboot-nixos.md
@@ -0,0 +1,40 @@
+## Show me the codes
+
+Regularly rebooting machines can be a useful, hygienic practice, but quite
+frankly I cannot be relied on to remember to regularly reboot my machine.
+
+Let's free-up some wetware-RAM by automating this with Nix. The following
+addition to your `configuration.nix` will schedule daily reboots at `03:00`:
+
+```nix
+systemd.timers.auto-reboot = {
+  wantedBy = [ "timers.target" ];
+  timerConfig = {
+    OnCalendar = "*-*-* 03:00:00";
+    Unit = "reboot.target";
+  };
+};
+```
+
+If you want to fiddle with the date format, `systemd-analyze` is your friend:
+
+```shell
+λ systemd-analyze calendar '*-*-* 03:00:00'
+Normalized form: *-*-* 03:00:00
+    Next elapse: Tue 2022-02-01 03:00:00 PST
+       (in UTC): Tue 2022-02-01 11:00:00 UTC
+       From now: 12h left
+```
+
+After calling `nixos-rebuild switch`, you can verify that `systemd` started the
+timer with:
+
+```shell
+λ systemctl list-timers auto-reboot
+#  output omitted because I'm writing this from a different machine
+```
+
+## That's all, folks!
+
+I wanted to keep this post short-and-sweet, to build the habit of posting more
+regularly. Hopefully someone out there found this useful.