На хабре когда-то опубликовали способ выключения Малинки кнопкой.
Мне больше подходит вариантна Беше -
#! /bin/bash
# Set up GPIO20 and set to output
echo "20" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio20/direction
echo "1" > /sys/class/gpio/gpio20/value
# Set up GPIO21 and set to input
echo "21" > /sys/class/gpio/export
echo "in" > /sys/class/gpio/gpio21/direction
while ( true )
do
# check if the pin is connected to GND and, if so, halt the system
if [ $(</sys/class/gpio/gpio21/value) == 1 ]
then
echo "20" > /sys/class/gpio/unexport
echo "21" > /sys/class/gpio/unexport
shutdown -h now "System halted by a GPIO action"
fi
sleep 1
done
Однако в нем есть существенный недостаток: реакция на кнопку мгновенная.
А надо с задержкой, например, в 3 секунды. Заодно это будет и защитой от дребезга.
Какою модификацию скрипта вы бы предложили для этого?