
Ich möchte, dass beim Systemstart ein Skript auf meinem Raspberry Pi ausgeführt wird. Aus diesem Grund habe ich in /etc/init.d ein Skript erstellt, das in /etc/rc2.d verknüpft ist.
Dies ist das Skript in init.d:
#! /bin/sh
### BEGIN INIT INFO
# Provides: Scriptname
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Kurze Beschreibung
# Description: Bechreibung
### END INIT INFO
#Switch case fuer den ersten Parameter
case "$1" in
start)
#Aktion wenn start aufgerufen wird
/home/thomas/applications/autostart/autostart.sh
;;
stop)
#Aktion wenn stop aufgerufen wird
echo "nope"
;;
restart)
#Aktion wenn restart aufgerufen wird
echo "nope"
;;
*)
#Default Aktion wenn start|stop|restart nicht passen
echo "(start|stop|restart)"
;;
esac
exit 0
Und das ist der Inhalt von /home/thomas/applications/autostart/autostart.sh
:
#! /bin/sh
touch /home/thomas/kater
Wenn ich den Startbefehl im Skript in /etc/init.d in die folgenden Zeilen ändere, wird der Touch-Befehl ausgeführt:
start)
#Aktion wenn start aufgerufen wird
touch /home/thomas/kater
;;
Warum wird das separate Skript nicht ausgeführt?
Vielen Dank im Voraus, McFarlane
Antwort1
Vorausgesetzt, das, was Sie gezeigt haben, ist genau das, was Sie haben, funktioniert das Skript nicht, da ein Formatierungsfehler vorliegt. Zwischen !#
und /bin/sh
in der Shebang-Zeile sollte kein Leerzeichen stehen:
#!/bin/sh
touch /home/thomas/kater