diff --git a/agent/agent.sh b/agent/agent.sh index 57111ed..8ced202 100644 --- a/agent/agent.sh +++ b/agent/agent.sh @@ -1,11 +1,18 @@ #!/usr/bin/env bash set -u -declare nmi +# Functions + +snore() +{ + local IFS + [[ -n "${_snore_fd:-}" ]] || exec {_snore_fd}<> <(:) + read ${1:+-t "$1"} -u $_snore_fd || : +} function checkNMI { - nmi=$(awk '/NMI/ {for (i=2; i<=NF; i++) if ($i ~ /^[0-9]+$/) {sum+=$i}} END {print sum}' /proc/interrupts) + local nmi=$(awk '/NMI/ {for (i=2; i<=NF; i++) if ($i ~ /^[0-9]+$/) {sum+=$i}} END {print sum}' /proc/interrupts) if [ "$nmi" != "" ] && [ "$nmi" -ne "0" ]; then @@ -18,9 +25,13 @@ function checkNMI { } +# Setup serialport + chmod 666 /dev/ttyS0 checkNMI +# Install packages + first_run=false for filename in /usr/local/packages/*.spk; do @@ -50,14 +61,17 @@ else fi +# Display message in docker log output + echo "-------------------------------------------" > /dev/ttyS0 echo " You can now login to DSM at port 5000 " > /dev/ttyS0 echo "-------------------------------------------" > /dev/ttyS0 +# Wait for NMI interrupt as a shutdown signal + while true; do checkNMI - sleep 2 + snore 2 done -