[HowTo] Entware-ng und Linux-Pakete installieren

  • Hehe na ja denke soviel ist da nicht durcheinander.

    Aber sehen wir mal habe den dhcp über Konsole gestartet.

    /opt/etc/init.d/S10dhcp start

    Quellcode

    1. #!/bin/sh
    2. if [ -n "`pidof dhcpd`" ] ; then
    3. /opt/bin/killall dhcpd 2>/dev/null
    4. fi
    5. sleep 2
    6. rm -f /opt/var/run/dhcpd.pid
    7. /opt/sbin/dhcpd


    Habe ich noch diese vom optware übernommen

    Quellcode

    1. #!/bin/sh
    2. start()
    3. {
    4. echo "Starting "
    5. /opt/etc/init.d/S56dhcp
    6. }
    7. stop()
    8. {
    9. echo "Shutting down "
    10. killall -9 dhcpd
    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
    Rechte sind alle auf 755 gesetzt

    Weiß jetzt nicht welcher dhcpd besser ist.

    unter Konsole ist dieser gestartet.


    Quellcode

    1. 30428 admin 12152 S N /opt/sbin/dhcpd
    2. 30447 admin 12016 S N /opt/sbin/dhcpd
  • Tut mir ja leid, dass ich dir widersprechen muss, es geht etwas durcheinander.

    Du siehst ja dass der dhcpd Daemon 2x gestartet wurde. Ist ja auch normal da beide Scripte wohl unter /opt/etc/init.d liegen.
    Beide Scripte werden dadurch ausgeführt und das zweite startet das erst nochmal.
    Das zweite Script ist von der Struktur her sauber. Ersetze dort in der startsektion /opt/etc/init.d/S56dhcp durch den eigentlichen Programmstart aus dem ersten Script und dann lösche das erste Script und alles ist sauber.
  • @dr_mike

    Das o.g. Zitat bezog sich auf die "Kette" autorun.sh (mtd) ruft Script /opt/etc/init.d/S10dhcp und dieses dann /opt/etc/init.d/S56dhcp wobei die beiden zuletzt genanten Scripte dann nochmal durch entware-ng gestartet werden.
    Insgesamt würde der Dienst dann 3x gestartet - was ja nicht geht.

    Dies ist dann nicht mehr "normal". Richtig ist , dass ein normales Init-script in /opt/etc/init.d zum Starten vom Dienst ausreicht.
    Das eine oben im Beitrag von Semtex hat einen ordentlichen Aufbau bis auf den Verweis zum zweiten Script. Bleibt das zweite Script unter /opt/etc/init.d erhalten "versucht" Entware dies auch zu starten. Das zweite Script muss weg. Aus beiden, wie schon geschrieben, ein Script machen oder die von mir schon erwähnte Methode (Script im Beitrag 58 weiter oben in diesem Thema) auf die Entware-ng sowieso zurück greift.

    vG Kasimodo

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von kasimodo ()

  • kasimodo schrieb:

    Das zweite Script ist von der Struktur her sauber. Ersetze dort in der startsektion /opt/etc/init.d/S56dhcp durch den eigentlichen Programmstart aus dem ersten Script und dann lösche das erste Script und alles ist sauber.
    OK danke für die Info kasimodo

    habe jetzt S10dhcp script die startsektion geändert

    siehe hier

    Shell-Script

    1. #!/bin/sh
    2. start()
    3. {
    4. echo "Starting "
    5. /opt/sbin/dhcpd
    6. }
    7. stop()
    8. {
    9. echo "Shutting down "
    10. killall -9 dhcpd
    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
    Denke so sollte das passen Rest scripte gelöscht
  • Die Frage ist immer, wann ein Dienst gestartet werden soll.
    Wenn dieser z.B. noch vor den QPKG (Entware-ng) gestartet werden soll, dann sollte der Aufruf aus der autorun.sh im Flash erfolgen.
    Soll er mit den QPKG gestartet werden, dann bietet sich ein Mini-QPKG an.
    Soll er erst gestartet werden, nachdem Entware-ng gestartet ist, dann nutzt man ein entsprechendes Script im initd von Entware.