From e879ff394f8493a1a15f40ef903a5d18e9f4b835 Mon Sep 17 00:00:00 2001 From: Kroese Date: Mon, 10 Apr 2023 20:13:59 +0200 Subject: [PATCH] Activate NMI handler --- agent/agent.sh | 41 ++++++++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/agent/agent.sh b/agent/agent.sh index 7c02cb9..72656a5 100644 --- a/agent/agent.sh +++ b/agent/agent.sh @@ -1,8 +1,27 @@ #!/usr/bin/env bash set -u -echo "Starting agent.." +declare nmi + +function checkNMI { + + nmi=$(cat /proc/interrupts | grep NMI) + nmi=$(echo "$nmi" | sed 's/[^0-9]*//g') + nmi=$(echo "$nmi" | sed 's/^0*//') + + if [ "$nmi" != "" ]; then + + echo "Received shutdown request through NMI.." > /dev/ttyS0 + + /usr/syno/sbin/synoshutdown -s > /dev/null + exit 0 + + fi + +} + chmod 666 /dev/ttyS0 +checkNMI first_run=false @@ -29,30 +48,18 @@ if [ "$first_run" = true ]; then done else - sleep 4 + sleep 5 fi echo "-------------------------------------------" > /dev/ttyS0 -echo " You can now login to DSM at port 5000" > /dev/ttyS0 +echo " You can now login to DSM at port 5000 " > /dev/ttyS0 echo "-------------------------------------------" > /dev/ttyS0 while true; do + checkNMI sleep 1 - #result=$(cat /proc/interrupts | grep NMI) - #result=$(echo "$result" | sed 's/[^0-9]*//g') - #result=$(echo "$result" | sed 's/^0*//') - # - #if [ "$result" != "" ]; then - # - # echo "Received shutdown request.." - # echo "Received shutdown request.." > /dev/ttyS0 - # - # /usr/syno/sbin/synopoweroff - # exit - # - #fi - done +