Innovenergy_trunk/csharp/Lib/Utils/Watchdog.cs

16 lines
558 B
C#

using System.Runtime.InteropServices;
namespace InnovEnergy.Lib.Utils;
// https://www.freedesktop.org/software/systemd/man/sd_notify.html
public static class Watchdog
{
// "it is generally recommended to ignore the return value of this call. "
// ReSharper disable once StringLiteralTypo
[DllImport("libsystemd.so.0")]
private static extern Int32 sd_notify(Int32 unsetEnvironment, String state);
public static void NotifyReady() => _ = sd_notify(0, "READY=1");
public static void NotifyAlive() => _ = sd_notify(0, "WATCHDOG=1");
}