Automatisch herstarten op crash

This commit is contained in:
Chris Josten 2020-10-18 18:55:34 +02:00
parent 9753f676f4
commit 6f8da01075
6 changed files with 20 additions and 27 deletions

View file

@ -7,7 +7,7 @@
en [klant-ip] door het ip-adres van het rekentuig dat de klant draait.
- Als je het programmaatje niet als root wilt uitvoeren, verander dan ook
de gebruiker in dit script.
3. Plaats aiuo-shutdown.service, aiuo-shutdown-suspend.service en aiuo-wakeup.service in `/etc/systemd/system`.
3. Plaats aiuo-shutdown.service en aiuo-shutdown-sleep.service in `/etc/systemd/system`.
4. Start deze services met systemd. Als je zeker weet dat het werkt, schakel het dan in.
- Ik heb mijn rekentuig een keer onopstartbaar gemaakt, omdat het zichzelf meteen
afsloot. Houd hier rekening mee!

View file

@ -0,0 +1,13 @@
[Unit]
Description=AIUO sleep hook
Before=sleep.target
StopWhenUnneeded=yes
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=-aiuo-shutdown --notify sleep
ExecStop=-aiuo-shutdown --notify wakeup
[Install]
WantedBy=sleep.target

View file

@ -1,11 +0,0 @@
[Unit]
Description=Notify aiuo-shutdown when system goes sleeping
StopWhenUnneeded=yes
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStop=aiuo-shutdown --notify sleep
[Install]
WantedBy=sleep.target

View file

@ -1,12 +0,0 @@
[Unit]
Description=Notify aiuo-shutdown when system wakes up
After=sleep.target
StopWhenUnneeded=yes
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStop=aiuo-shutdown --notify wakeup
[Install]
WantedBy=suspend.target

View file

@ -6,6 +6,8 @@ After=network-online.target
[Service]
Type=idle
ExecStart=aiuo-shutdown [wachttijd] [klant-ip]
Restart=on-failure
RestartSec=3
User=root
[Install]

View file

@ -58,11 +58,13 @@ def sigterm_handler(signum, frame):
def sigusr1_handler(signum, frame):
LOGGER.debug("Going to sleep")
client.notify("NotifySleep")
if client:
client.notify("NotifySleep")
def sigusr2_handler(signum, frame):
LOGGER.debug("Waking up")
client.notify("NotifyWakeup")
if client:
client.notify("NotifyWakeup")
def main() -> None:
@ -87,7 +89,6 @@ def main() -> None:
LOGGER.debug(client.call("GetBootReason"))
# Alleen de klant op de hoogte stellen nadat we hebben laten weten dat we er zijn.
LOGGER.debug("signalen registreren")
#loop.add_signal_handler(signal.SIGINT, lambda: asyncio.ensure_future(sigint_handler()))
signal.signal(signal.SIGTERM, sigterm_handler)
signal.signal(signal.SIGUSR1, sigusr1_handler)
signal.signal(signal.SIGUSR2, sigusr2_handler)