hosts/skycam: reboot every day
This commit is contained in:
@ -31,30 +31,50 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.services.skycam-archiver =
|
systemd.services = {
|
||||||
let
|
daily-reboot = {
|
||||||
snapshotScript = pkgs.writeShellScript "skycam-archiver" ''
|
description = "Daily system reboot";
|
||||||
${pkgs.lib.getExe pkgs.curl} -s -o "/var/lib/skycam-archiver/snapshot-$(date +%Y%m%d-%H%M%S).jpg" "http://skycam.mesh.vimium.net:1984/api/frame.jpeg?src=rpicam"
|
|
||||||
'';
|
|
||||||
in
|
|
||||||
{
|
|
||||||
description = "Capture skycam snapshot and save with timestamp";
|
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "oneshot";
|
Type = "oneshot";
|
||||||
StateDirectory = "skycam-archiver";
|
ExecStart = "/run/current-system/sw/bin/reboot";
|
||||||
ExecStart = "${snapshotScript}";
|
Restart = "no";
|
||||||
};
|
};
|
||||||
requires = [ "go2rtc.service" ];
|
|
||||||
after = [ "go2rtc.service" ];
|
|
||||||
};
|
};
|
||||||
|
skycam-archiver =
|
||||||
|
let
|
||||||
|
snapshotScript = pkgs.writeShellScript "skycam-archiver" ''
|
||||||
|
${pkgs.lib.getExe pkgs.curl} -s -o "/var/lib/skycam-archiver/snapshot-$(date +%Y%m%d-%H%M%S).jpg" "http://skycam.mesh.vimium.net:1984/api/frame.jpeg?src=rpicam"
|
||||||
|
'';
|
||||||
|
in
|
||||||
|
{
|
||||||
|
description = "Capture skycam snapshot and save with timestamp";
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "oneshot";
|
||||||
|
StateDirectory = "skycam-archiver";
|
||||||
|
ExecStart = "${snapshotScript}";
|
||||||
|
};
|
||||||
|
requires = [ "go2rtc.service" ];
|
||||||
|
after = [ "go2rtc.service" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
systemd.timers.skycam-archiver = {
|
systemd.timers = {
|
||||||
description = "Timer for capturing skycam snapshots every 30 minutes";
|
daily-reboot = {
|
||||||
wantedBy = [ "timers.target" ];
|
description = "Timer for daily system reboot";
|
||||||
timerConfig = {
|
wantedBy = [ "timers.target" ];
|
||||||
OnBootSec = "5min";
|
timerConfig = {
|
||||||
OnUnitActiveSec = "30min";
|
OnCalendar = "*-*-* 03:00:00";
|
||||||
Unit = "skycam-archiver.service";
|
Persistent = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
skycam-archiver = {
|
||||||
|
description = "Timer for capturing skycam snapshots every 30 minutes";
|
||||||
|
wantedBy = [ "timers.target" ];
|
||||||
|
timerConfig = {
|
||||||
|
OnBootSec = "5min";
|
||||||
|
OnUnitActiveSec = "30min";
|
||||||
|
Unit = "skycam-archiver.service";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user