2016-04-03 17 views
0

Ich muss meine Wildfly AS durch .sh-Skript nach dem Systemstart (Linux-Debian) starten. Also habe ich mein eigenes Skript, das es in init.d tun sollten:debian init.d Skript läuft nicht nach Neustart

#! /bin/sh 
# /etc/init.d/starter 

case "$1" in 
    start) 
    echo "Starting" 
    nohup /home/xxx/wildfly-9.0.1.Final/bin/standalone.sh & 
    ;; 
    stop) 
    echo "Stopping" 
    /home/xxx/wildfly-9.0.1.Final/bin/jboss-cli.sh --connect command=:shutdown 
    ;; 
    *) 
    echo "Usage: /etc/init.d/starter {start|stop}" 
    exit 1 
    ;; 
esac 
exit 0 

Diese arbeitet, wenn ich es auf meinem eigenen verwenden: /etc/init.d/starter start.

Dann habe ich Befehl verwendet, um symbolische Verknüpfungen zu erstellen: update-rc.d starter defaults. Symlinks werden wie erwartet erzeugt, jedoch wird das Skript nach reboot Befehl nicht ausgeführt.

Weiß jemand, was verhindert, dass mein Skript nach dem Booten ausgeführt wird? Danke für all Ihre Ratschläge.

+0

Welche Version von Debian? Debian v6 oder höher ersetzt * update-rc.d * durch * inserve * ... siehe Debian-Wiki [Wie man einen Dienst hinzufügt, wenn man abhängigkeitsbasiertes Booten verwendet] (https://wiki.debian.org/LSBInitScripts/DependencyBasedBoot) – agc

+0

@agc Vielen Dank für Ihre Antwort. Im Lauf 8.3. In man insserv lese ich: "Es wird nicht empfohlen, insserv direkt auszuführen, es sei denn, Sie wissen genau, was Sie tun. Dadurch kann Ihr Boot-System funktionsunfähig werden. Update-rc.d ist die empfohlene Schnittstelle zum Verwalten von Init-Skripten." Das ist also nicht das Problem. –

+0

Entschuldigung - das habe ich verpasst. Hmm, Berechtigungen, vielleicht. Gibt es etwas Ungewöhnliches in der Ausgabe von diesem: ** find /etc/rc?.d/ -name '* starter' -exec ls -l '{}' \; ; ls -l /etc/init.d/starter** Normalerweise sollte jeder Link im Besitz von * root * sein und der Dateimodus 'lrwxrwxrwx (0777)' sein, die Datei selbst hat den Modus '-rwxrwxr-x (0775)'. – agc

Antwort

0

Problem war, dass ich nicht wusste, anfängliche Skript muss seine eigenen $ PATH und andere Variablen setzen. Ich habe es herausgefunden, als ich Java sah: nicht in/var/log/daemon gefunden. Am Ende fand ich, dass Wildfly sein eigenes scrpt hat init-debian.sh. Ich habe es benutzt und es funktioniert.