[SCRIPT] autorun.sh - Optware Dienste starten und beenden

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Re: [SCRIPT] autorun.sh - Optware Dienste starten und beende

    Ich hatte schon vor es eh anders zu lösen ;)

    Also nicht das mit dem Path enviroment :arrow: :D Hatte ich schon hier ^^
    Werde die autorun.sh noch einmal anpassen -> aber etwas anders ;)

    So angepasst. im 1. Thread zu finden.
    Jetzt sollte es ohne absolute Pfade funktionieren, auch werden jetzt einfach alle Festplatten / RAID Devices nach der Optware durchsucht.
    Diese änderung war notwenig, da es immer grössere NAS Modelle gibt.

    Danke noch einmal ;)

    Grüsse, David
  • Re: [SCRIPT] autorun.sh - Optware Dienste starten und beende

    Hallo und guten Morgen zusammen.
    Ich habe mal eine kurze Frage:

    In meiner S1......... Datei habe ich folgenden Code drin (die Autorun.sh habe ich von Beitrag #1 1:1 übernommen):

    Shell-Script

    1. #!/bin/sh
    2. start()
    3. {
    4. echo "Starting "
    5. /opt/hc/hcserver.py --daemon
    6. }
    7. stop()
    8. {
    9. echo "Shutting down "
    10. /opt/hc/hcserver.py --quit
    11. }
    12. # you do not need to edit this lines
    13. case "$1" in
    14. start)
    15. start
    16. ;;
    17. stop)
    18. stop
    19. ;;
    20. restart)
    21. # Restarting the Daemon
    22. $0 stop
    23. $0 start
    24. ;;
    25. *)
    26. ## If no parameters are given, print which are avaiable.
    27. echo "Usage: $0 {start|stop|restart}"
    28. exit 1
    29. ;;
    30. esac
    Alles anzeigen


    Ich habe schon verschiedene Pfade versucht, jedoch kommt als Antwort beim manuellen Starten immer:
    /opt/etc/init.d/S1Python: line 6: /opt/hc/hcserver.py: Permission denied


    Hat hier zufällig jemand eine Idee, was ich hier falsch eingegen habe?

    Danke und Gruß
    Joggi
  • Re: [SCRIPT] autorun.sh - Optware Dienste starten und beende

    Hat hier zufällig jemand eine Idee, was ich hier falsch eingegen habe?


    Nix ;)
    Wenn Du /opt/hc/hcserver.py --daemon nicht manuell ausführen kannst, dann wird es mit dem init.d script auch nicht gehen ;)

    Quellcode

    1. chmod +x /opt/hc/hcserver.py

    Dann ist die Datei ausführbar.

    Zusätzlich muss bei einem Python Script auch die Shebang stimmen.

    Grüsse, David
  • Re: [SCRIPT] autorun.sh - Optware Dienste starten und beende

    Hallo,
    danke für die erste Antwort.
    Also wenn ich manuell ins Verzeichnis gehe und python hcserver.py eingebe, dann funktioniert das ganze.
    Nur wenn ich das Script manuell starten will, dann kommt diese Fehlermeldung.

    Gruß
    Joggi
  • Re: [SCRIPT] autorun.sh - Optware Dienste starten und beende

    Hi,

    dann heisst es aber:

    Quellcode

    1. python hcserver.py --daemon

    für den Start.
    und

    Quellcode

    1. python hcserver.py --quit

    für das Beenden.

    Python führst Du aus und nicht hcserver.py direkt. Immer 1:1 (So wie man es manuell ausführt) in das init.d script.

    Grüsse, David
  • Re: [SCRIPT] autorun.sh - Optware Dienste starten und beende

    Hallo,
    sorry das ich nochmal nachfragen muss. Anscheinend stelle ich mich etwas zu b...öd an.

    Ich will eigentlich ctrl-h.de/cms/news.php auf meiner QNAP ausführen.
    Wenn ich das ganze in PuTTY ganz manuell starte, dann funktioniert das ganze auch. Jedoch müsste bzw. will ich das komplett durchlaufen lassen, auch wenn mein Rechner nicht an ist. Und hierzu habe ich die Scripte ausprobiert.
    Mit und ohne python vor den hcserver.py......................... aber mit python davor, kommt beim /opt/etc/init.d/S1Python start ein No such file or directory und ohne kommt ein Permission denied.
    Ich hab grad den halben Sonntag probiert und das super Forum hier durchgesucht. Aber leider komme ich nicht wirklich weiter.
    Fall´s jemand eventuell einen Tipp hab würde ich mich freuen und danke schonmal im Vorraus.

    Gruß
    Joggi
  • Re: [SCRIPT] autorun.sh - Optware Dienste starten und beende

    Hallo Terz

    Irgendwie bin ich unfähig dein "Script mit LOG-Ausgabe" auf mein OpenVPN anzupassen.

    Von hand navigiere ich in das Verzeichnis

    Quellcode

    1. /opt/etc/openvpn

    Da gebe ich dann den Befehl

    Quellcode

    1. openvpn easy.conf


    Und dann tut alles so wie es sollte.....
    Wie Packe ich nun die Sache in dein Script?

    LG
    mike
  • Re: [SCRIPT] autorun.sh - Optware Dienste starten und beende

    Hallo David

    Ok danke für die schnelle Antwort. :thumbsup:
    Leider startet der VPN-Server so nicht. :(
    Ich habe da wohl was falsch verstanden mit dem Einfügen nach den Zeilen /sbin/log_tool ....?

    Wenn du bitte kurz drüberschauen kannst....?
    Mein Script sieht wie folgt aus:

    Quellcode

    1. #!/bin/sh
    2. NAME="OpenVPN"
    3. start()
    4. {
    5. echo "Starting ${NAME}"
    6. /sbin/log_tool -a "Starting ${NAME}" -t 0 -u SYSTEM -m LOCAL
    7. openvpn /opt/etc/openvpn/easy.conf
    8. }
    9. stop()
    10. {
    11. echo "Shutting down ${NAME}"
    12. /sbin/log_tool -a "Shutting down ${NAME}" -t 0 -u SYSTEM -m LOCAL
    13. killall openvpn
    14. }
    15. # you do not need to edit this lines
    16. case "$1" in
    17. start)
    18. start
    19. ;;
    20. stop)
    21. stop
    22. ;;
    23. restart)
    24. # Restarting the Daemon
    25. $0 stop
    26. $0 start
    27. ;;
    28. *)
    29. ## If no parameters are given, print which are avaiable.
    30. echo "Usage: $0 {start|stop|restart}"
    31. exit 1
    32. ;;
    33. esac
    Alles anzeigen


    Vielen Dank für deine Zeit...
  • Re: Perl-script aus Init-script starten

    Hallo,

    Nach dem Lesen dieses Thread habe ich versucht, auf meiner 219P+ ein Init- Skript zum Laufen zu bringen, dass wiederrum ein Perl-script zum Auslesen meiner Wetterstation startet. Leider funktioniert dies nicht zuverlässig, da das Auslesen nicht mit jedem Neustart des NAS gestartet wird. Die "Autorun.sh" im flash- Speicher habe ich aus dem Code aus dem ersten Beitrag übernommen. Mein Init-script lautet S99ws500 und schaut so aus:

    Shell-Script

    1. #!/bin/sh
    2. # PROVIDE: ws500_readout
    3. # REQUIRE: DAEMON
    4. # BEFORE: LOGIN
    5. NAME="ws500_readout"
    6. start()
    7. {
    8. /sbin/insmod /usr/local/modules/usbserial.ko
    9. /sbin/insmod /usr/local/modules/ftdi_sio.ko vendor=0x18ef product=0xe004
    10. /share/MD0_DATA/custom/weather/ws500.pl
    11. echo "${NAME} started"
    12. /sbin/log_tool -a "Starting ${NAME}" -t 0 -u SYSTEM -m LOCAL
    13. }
    14. stop()
    15. {
    16. killall ws500.pl
    17. killall ws500.sh
    18. echo "${NAME} stopped"
    19. /sbin/log_tool -a "Shutting down ${NAME}" -t 0 -u SYSTEM -m LOCAL
    20. }
    21. # you do not need to edit this lines
    22. case "$1" in
    23. start)
    24. start
    25. ;;
    26. stop)
    27. stop
    28. ;;
    29. restart)
    30. # Restarting the Daemon
    31. $0 stop
    32. $0 start
    33. ;;
    34. *)
    35. ## If no parameters are given, print which are avaiable.
    36. echo "Usage: $0 {start|stop|restart}"
    37. exit 1
    38. ;;
    39. esac
    Alles anzeigen


    Das Laden der Kernel-Module ist sicherlich nicht ideal, allerdings habe ich bislang noch keine andere Lösung gefunden. Das Script funktioniert allein und im Zusammenspiel mit der autorun.sh beim manuellen Ausführen ohne Probleme. Beim Neustart des NAS wird aber nicht jedesmal der Dämon gestartet:

    • Beim Kaltstart habe ich teilweise einen Erfolg.
    • Beim Reboot nie


    Wird das Script erfolgreich ausgeführt, dann steht nichts im Systemlog, dagegen wird beim reboot der gescheiterte Versuch mit der Meldung "Starting ws500_readout" angezeigt.

    Hat jemand eine Idee, was ich falsch mache?

    Gruß
    Jürgen
  • Re: [SCRIPT] autorun.sh - Optware Dienste starten und beende

    Hi Jürgen,

    die Module so laden ist schon ok.
    Das andere deutet auf ein Problem mit dem Perl script.

    Was genau hast Du innerhalb des Perl script's als Shebang definiert, wenn Du es direkt aufrufst.

    Quellcode

    1. #!/opt/bin/perl

    ?

    oder rufe das script einfach via Perl auf. Beispiel:

    Quellcode

    1. /opt/bin/perl /share/MD0_DATA/custom/weather/ws500.pl


    Wenn das Perl script auch etwas ausgibt, dann ist das auch nicht wirklich prickelnd.

    Das wird auch der Fall sein, da ja nicht immer etwas im Log steht. Im Log sollte immer etwas stehen. (/sbin/log_tool -a "Starting ${NAME}" -t 0 -u SYSTEM -m LOCAL)

    Grüsse, David
  • Re: [SCRIPT] autorun.sh - Optware Dienste starten und beende

    Hallo David,

    Das ursprüngliche Shebang im Perl script lautet:

    Quellcode

    1. #!/opt/bin/perl -w

    Ich habe zwei Tests gemacht:
    • Einmal ohne "-w" im Perl-Script
    • Einmal mit dem Direktaufruf von Perl mittels des Scripts


    In beiden Fällen hatte ich keinen Erfolg. Im zweiten Fall habe ich das Script auch manuell mit der Befehlszeile gestartet, wobei diesmal keine Verbindung mehr zur Datenbank hergestellt werden konnte! Ich habe dann festgestellt, dass mittlerweile die Datenbank in mySQL nicht mehr vorhanden ist (Das perl-script liest die Daten aus der Wetterstation aus und speichert diese in einer mySQL-Datenbank). Heute Nachmittag konnte ich mir allerdings noch direkt in der Datenbank die Werte ansehen. Warum nun diese Datenbank nicht mehr existiert kann ich nicht sagen. Gelöscht habe ich sie nicht.

    Die ganze Problematik ist mit dem Firmware-update von "3.4.2_Build0331" auf "3.5.2_Build1126" entstanden. Im alten Zustand habe ich das Perl-script direkt aus "autorun.sh" gestartet. Dies hatte nach dem Update nicht mehr funktioniert. Sollte ich vielleicht den alten Stand wieder einspielen und versuchen, dort die Skripte zum Laufen zu bringen?

    Gruß
    Jürgen
  • Re: [SCRIPT] autorun.sh - Optware Dienste starten und beende

    Eine Möglichkeit wären die libs…

    Probiere mal ein:
    ipkg update && ipkg upgrade
    aus.

    In der Tat, wenn die DB nicht mehr existiert, die einfach noch ma anlegen.
    Wenn möglich kannst Du ein php script draus machen?
    Weil php iss out-of-the-box mit dabei.

    Grüsse, David
  • Re: [SCRIPT] autorun.sh - Optware Dienste starten und beende

    Hallo David,

    Ich werde mich an meinen freien Tagen damit auseinander setzen. Vielleicht setze ich das NAS komplett neu auf. Derzeit lass ich den SMART-Test über die Festplatten laufen. Mich macht vor allem der Verlust der kompletten Datenbank in MySQL stutzig. Ich glaube, dass ich das Anlegen der Datenbank über ein Script mit SQL- Anweisungen gemacht habe.

    Ich werde mich noch einmal melden.

    Jürgen
  • Re: [SCRIPT] autorun.sh - Optware Dienste starten und beende

    Hallo,

    Gestern und heute habe ich mich erfolgreich mit der Thematik auseinander gesetzt :D

    Das Problem an meiner Geschichte lag an den ipkg- Paketen. Zum Eintragen der Daten in MySQL benötigte ich das Paket "perl-dbd-mysql". Leider zog dieses das Paket "mysql" nach, so dass ich unzweckmäßiger weise zwei konkurrierende MySQL-Server am Laufen hatte. Ich habe dann zunächst alle "Perl-*" Pakete deinstalliert und anschließend nur noch "Perl" wieder installiert. Mittels des Beitrages forum.qnapclub.de/viewtopic.php?f=105&t=2769 konnte ich dann die benötigten Perl-Module selbst erstellen. Das automatische Starten funktionierte dann bei mehreren Systemstarts tadellos.

    Gruß vom Jürgen, der mal wieder eine Menge gelernt hat :thumbsup:
  • Re: [SCRIPT] autorun.sh - Optware Dienste starten und beende

    Hallo,
    Farage zum:
    Änderung 7. Juli 2011:
    Überprüfen ob das init.d script überhaupt beim Starten und Herunterfahren ausgeführt wird.

    Das ganze geschieht via dem log_tool.
    Wenn man allerdings viele init.d script's hat, kann es irgendwann einfach nur "voll" in den Systemprotokoll werden. Ich empfehle es einfach nur zum testen. Danach könnte man die Zeile /sbin/log_tool..... einfach löschen (so würde wieder ruhe im Systemprotokoll einkehren).

    Wenn das NAS beim Starten das init.d script aufruft, es ein "start und stop" gibt, jedoch das was man ausführen möchte nicht ausgeführt wird, dann weiss man schon einmal, dass es am init.d script liegt.
    Hier nun die Vorlage:
    Vorlage eines init Script's mit "Log" Ausgabe im AdminCP (Starten und Beenden):


    Wie und wo kann ich den Systemprotokoll finden?
    Was ist AdminCP?

    Ich habe folgendes gemacht:
    1. mount -t ext2 /dev/mtdblock5 /tmp/config
    2. autorun.sh zum editieren geöffnet: nano /tmp/config/autorun.sh
    3. 1:1 dein Skript von Seite 1 kopiert und gespeichert
    4. Ausführbar gemacht: chmod +x /tmp/config/autorun.sh
    5. Unmountet: umount /tmp/config
    6. In /opt/etc/init.d Verzeichnis dein Vorlage-Skript (Änderung 7. Juli 2011) erstellt. 1:1 Kopie. Name des Skriptes: STest (ohne.sh)
    7. Ausführbar gemacht: chmod +x /opt/etc/init.d/STest
    8. Reboot
    9. Wo und wie finde ich den Log jetzt?


    Ps.
    Alles auf TS-219P II