Good to Know Database

Raspbian: Automatisierte Installation der Software für den Raspberry Pi Power Button


Wie Sie die Software für den Raspberry Pi Power Button von Hand installieren, wurde bereits auf der Seite Raspbian: Software für den Raspberry Pi Power Button einrichten beschrieben. Mit dem folgenden Shell-Skript ist eine vollständig automatisierte Installation der für den Raspberry Pi Power Button benötigten Software möglich.

###########################################################################
##                                                                       ##
##                  Raspbian Power Button Setup Script                   ##
##                                                                       ##
## Creation:    05.04.2015                                               ##
## Last Update: 07.04.2015                                               ##
##                                                                       ##
## Copyright (c) 2015 by Georg Kainzbauer <http://www.gtkdb.de>          ##
##                                                                       ##
## This program is free software; you can redistribute it and/or modify  ##
## it under the terms of the GNU General Public License as published by  ##
## the Free Software Foundation; either version 2 of the License, or     ##
## (at your option) any later version.                                   ##
##                                                                       ##
###########################################################################
#!/bin/bash

###########################################################################
## Install shutdownbutton.py                                             ##
###########################################################################

RestartRequired=0

echo
echo "------------------------------------------------------"
echo "Create shutdownbutton.py"
echo "------------------------------------------------------"
echo

if [ ! -x /usr/local/bin/shutdownbutton.py ]; then
  cat <<\EOF > /usr/local/bin/shutdownbutton.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-

#
# Creation:    09.06.2013
# Last Update: 07.04.2015
#
# Copyright (c) 2013-2015 by Georg Kainzbauer <http://www.gtkdb.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#

# import required modules
import time
import subprocess
import RPi.GPIO as GPIO

# set GPIO pin with connected button
GPIOPin = 31

# main function
def main():
  value = 0

  while True:
    # increment value if button is pressed
    if not GPIO.input(GPIOPin):
      value += 0.5

    # restart or shutdown selected
    if value > 0:

      # shutdown selected if value is larger than 3 or equal
      if value >= 3:
        subprocess.call(["shutdown", "-h", "now"])
        return 0

      # restart selected if value is less than 3
      elif GPIO.input(GPIOPin):
        subprocess.call(["shutdown", "-r", "now"])
        return 0

    # wait 500ms
    time.sleep(0.5)

  return 0

if __name__ == '__main__':
  # use GPIO pin numbering convention
  GPIO.setmode(GPIO.BCM)

  # set up GPIO pin for input
  GPIO.setup(GPIOPin, GPIO.IN)

  # call main function
  main()
EOF

  chown root:root /usr/local/bin/shutdownbutton.py
  chmod 0755 /usr/local/bin/shutdownbutton.py

  RestartRequired=1

  echo "Done."
else
  echo "Already done. Nothing to do."
fi

echo
echo "------------------------------------------------------"
echo "Add shutdownbutton.py to rc.local"
echo "------------------------------------------------------"
echo

if [ $(cat /etc/rc.local | grep "shutdownbutton.py" | wc -l) -eq 0 ]; then
  sed -i 's/^exit/\/usr\/local\/bin\/shutdownbutton.py \&\n\n&/' /etc/rc.local

  RestartRequired=1

  echo "Done."
else
  echo "Already done. Nothing to do."
fi

###########################################################################
## Restart system                                                        ##
###########################################################################

echo
echo "------------------------------------------------------"
echo "Restart system"
echo "------------------------------------------------------"
echo

if [ $RestartRequired -eq 1 ]; then
  shutdown -r now
else
  echo "No restart required."
fi

exit 0

Damit ich das Skript nach der Installation von Raspbian relativ schnell ausführen kann, habe ich das Shell-Skript auf meinem lokalen FTP-Server abgelegt. Von dort kann ich das Skript mit dem folgenden Befehl herunterladen und direkt ausführen.

pi@raspberrypi ~ $ wget -q ftp://ftp.home.lan/pub/linux/raspbian_power_button.sh -O raspbian_power_button.sh && chmod +x raspbian_power_button.sh && sudo ./raspbian_power_button.sh

Falls Sie das Shell-Skript ebenfalls für die Installation verwenden wollen, steht Ihnen dieses auch auf meinem Webserver zur Verfügung und kann mit folgendem Befehl heruntergeladen und direkt ausgeführt werden.

pi@raspberrypi ~ $ wget -q http://www.gtkdb.de/download_359.html -O raspbian_power_button.sh && chmod +x raspbian_power_button.sh && sudo ./raspbian_power_button.sh

Weiterführende Tutorials

Raspbian: Automatisierte Deinstallation der Software für den Raspberry Pi Power Button


Dieser Eintrag wurde am 05.04.2015 erstellt und zuletzt am 24.01.2016 bearbeitet.

Direkter Link zu dieser Seite: http://www.gtkdb.de/index_36_2671.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2016 by Georg Kainzbauer