Linux-Startskript führt kein Skript im Home-Verzeichnis des Benutzers aus

Linux-Startskript führt kein Skript im Home-Verzeichnis des Benutzers aus

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/shin der Shebang-Zeile sollte kein Leerzeichen stehen:

#!/bin/sh
touch /home/thomas/kater

verwandte Informationen