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. 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 - Als je het programmaatje niet als root wilt uitvoeren, verander dan ook
de gebruiker in dit script. 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. 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 - Ik heb mijn rekentuig een keer onopstartbaar gemaakt, omdat het zichzelf meteen
afsloot. Houd hier rekening mee! 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] [Service]
Type=idle Type=idle
ExecStart=aiuo-shutdown [wachttijd] [klant-ip] ExecStart=aiuo-shutdown [wachttijd] [klant-ip]
Restart=on-failure
RestartSec=3
User=root User=root
[Install] [Install]

View file

@ -58,10 +58,12 @@ def sigterm_handler(signum, frame):
def sigusr1_handler(signum, frame): def sigusr1_handler(signum, frame):
LOGGER.debug("Going to sleep") LOGGER.debug("Going to sleep")
if client:
client.notify("NotifySleep") client.notify("NotifySleep")
def sigusr2_handler(signum, frame): def sigusr2_handler(signum, frame):
LOGGER.debug("Waking up") LOGGER.debug("Waking up")
if client:
client.notify("NotifyWakeup") client.notify("NotifyWakeup")
@ -87,7 +89,6 @@ def main() -> None:
LOGGER.debug(client.call("GetBootReason")) LOGGER.debug(client.call("GetBootReason"))
# Alleen de klant op de hoogte stellen nadat we hebben laten weten dat we er zijn. # Alleen de klant op de hoogte stellen nadat we hebben laten weten dat we er zijn.
LOGGER.debug("signalen registreren") 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.SIGTERM, sigterm_handler)
signal.signal(signal.SIGUSR1, sigusr1_handler) signal.signal(signal.SIGUSR1, sigusr1_handler)
signal.signal(signal.SIGUSR2, sigusr2_handler) signal.signal(signal.SIGUSR2, sigusr2_handler)