Optware ordentlich mit start/stop versorgen

goetz

Super-Moderator
Teammitglied
Mitglied seit
18. Mrz 2009
Beiträge
13.555
Punkte für Reaktionen
23
Punkte
328
Hallo,
im englischen Forum mehren sich die Anzeichen, daß Serverprozesse die per ipkg installiert wurden ein runterfahren bzw. neustarten verhindern. Ist bei meiner 106 auch so, da mysql 4 per ipkg gestartet wird.
Meine Lösung:
Alle Verweise zu optware in rc.local raus. In /usr/local/etc/rc.d eine optware.sh angelegt
Rich (BBCode):
#!/bin/sh

# Optware setup

case $1 in
start)
        for i in /opt/etc/init.d/S??* ;do

                # Ignore dangling symlinks (if any).
                [ ! -f "$i" ] && continue

                case "$i" in
                   *.sh)
                        # Source shell script for speed.
                        (
                                trap - INT QUIT TSTP
                                set start
                                . $i
                        )
                        ;;
                   *)
                        # No sh extension, so fork subprocess.
                        $i start
                        ;;
                esac
        done
        ;;

stop)

        for i in /opt/etc/init.d/S??* ;do

                # Ignore dangling symlinks (if any).
                [ ! -f "$i" ] && continue

                case "$i" in
                   *.sh)
                        # Source shell script for speed.
                        (
                                trap - INT QUIT TSTP
                                set stop
                               . $i
                        )
                        ;;
                   *)
                        # No sh extension, so fork subprocess.
                        $i stop                       ;;
                esac
          done
          ;;

*)
          echo "Usage: $0 [start|stop]"
          ;;
esac
Das klappt:). Nebeneffekt ist dabei, daß erst alle Systemprozesse gestartet werden und danach erst die Optwareprozesse, Systemprozesse sollten ja Vorrang haben, vorher waren die Optwaresachen immer die ersten.
Problematisch sind immer noch Prozesse die per cron gestartet werden und gerade aktiv sind wenn die DS neu starten oder abschalten soll.

Gruß Götz
 
Zuletzt bearbeitet:

jahlives

Moderator
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
2
Punkte
0
Nebeneffekt ist dabei, daß erst alle Systemprozesse gestartet werden und danach erst die Optwareprozesse, Systemprozesse sollten ja Vorrang haben, vorher waren die Optwaresachen immer die ersten.
Problematisch sind immer noch Prozesse die per cron gestartet werden und gerade aktiv sind wenn die DS neu starten oder abschalten soll.
Würde aber heissen, dass ein ipkg syslog relativ spät startet? Je nach ipkg Dienst könnte es ja gewünscht sein, den Dienst sehr früh im Bootprozess anzuwerfen.
Ich habe bis jetzt (auf Holz klopf) mit der neuen Firmware auf einer DS107+ und 408 und einigen ipkg Diensten keinerlei solche Probleme feststellen können. Könnte das mit dem Symlink anstelle von mount für /opt zu tun haben?
 

goetz

Super-Moderator
Teammitglied
Mitglied seit
18. Mrz 2009
Beiträge
13.555
Punkte für Reaktionen
23
Punkte
328
Hi,
meine 107+ macht auch keine Probleme, da laufen aber keine ipkg Serverprozesse drauf. Die 106 hatte alle Systemprozesse geschlossen außer sshd und eben ipkg mysql und dann gibts Kernel-oops und die Kiste fährt nicht runter da /volume1 nicht ausgehangen werden kann. Auf symlink habe ich schon lange umgestellt, es scheitert dann aber an /volume1. Wenn die cronjobs (5-min. Takt) gerade nicht laufen kein Problem mit dem script, sind die aber am rennen (php, rrdtool, snmpget, snmpwalk) klappt das auch schon nicht mehr.
Dachte erst, daß das mit synobios.o von der 107 zu tun haben könnte aber die Symptome im englischen Forum sind die gleichen.

Gruß Götz
 

jahlives

Moderator
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
2
Punkte
0
Ich habe schon seit längerer Zeit ein "Shutdown" Script welches sicherstellt, dass alle /opt Prozesse down sind. Das wird als letztes opt Script ausgeführt und killt alles ge-opte gnadenlos ;)
Es gibt ja bei vielen ipkg Paketen so "intelligente" Startscripte, die den Dienst bei stop trotzdem wieder anwerfen. Hast du mal geguckt ob du auf der 106 einen solchen Kanditaten hast?

Gruss

tobi
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
7
Punkte
0
Ich fände es gut, wenn man zusammen mit den Synology-Entwicklern ein Konzept für die opt-Server-Skripte finden könnte, welches dann auch von Synology gut unterstützt wird. So wird sich jetzt jeder etwas basteln und es wird viele IPKG-Päckchen geben, die sich nicht wirklich daran halten. Kann man da nicht mal im internationalen Forum einen Faden zu aufmachen?

Itari
 

pizza

Benutzer
Mitglied seit
31. Jan 2010
Beiträge
48
Punkte für Reaktionen
0
Punkte
0
Entschuldigung, aber könntest du das ganze bitte etwas näher erläutern, für nich ganz so Technik versierte :eek:

Also ich hab ebenfalls das Problem, dass weder Neustart noch herunterfahren funktioniert.
Im Protokoll wird folgendes angezeigt:
(,,Server started counting down to shutdown" oder
"System started counting down to reboot" allerdings geschieht sonst nichts.)

Es handelt sich um eine DS 209 mit neuester FW (3.0 1337)

Selbst per Putty (SSH) funktioniert es nicht , bzw. putty funktioniert auf einmal gar keine eingabe mehr.
(Bei Putty, funktioniert das einwählen noch perfekt, sobald ich allerdings dann angemeldet bin und irgend einen Befehl ausführen will, geht gar nichts mehr...)


Ich hatte deswegen schon einen anderen Thread aufgemacht und wurde hier her verwiesen.

IPKG's habe ich folgende installiert und am laufen:
PHPinfo
Unzip
DDNS Updater
LED Control

PS: Ich weiss nich ob das mit diesem Problem zusammen hängt, aber ich hatte es nur deswegen gemerkt, dass das neustarten nicht mehr geht (weil ich einen Reboot deswegen durchführen wollte)
"Ich hab im Protokoll auf einmal 53 "aktive Verbindungen", wobei die Accounts gar nicht mehr verbunden waren/sind (und sogar mehrfach angezeigt werden) mit dem Server, daher wollte ich neustarten, was ja nun leider nicht mehr ging..."

Was muss ich machen damit endlich alles wieder normal läuft?
 

Wessix

Benutzer
Mitglied seit
14. Okt 2010
Beiträge
319
Punkte für Reaktionen
0
Punkte
0
DS Rebooten/ Herunterfahren

Hi, bei mir ist bei meiner DS 411+ das selbe Problem aufgetreten. Kann weder rebooten noch runterfahren. Muss also im Moment den ON/off schalter der DS 10s drücken und eiskalt den Strom wegnehmen. Das ist auf die dauer wohl nicht so gesund.
Habe an IPKG packeten die für Pyload notwendigen installiert da wären:
ipkg install python
ipkg install py25-crypto
ipkg install py25-curl
ipkg install libcurl
ipkg install py25-openssl
ipkg install py25-django
ipkg install py25-pil
ipkg install tesseract-ocr
ipkg install tesseract-ocr-lang-eng
ipkg install ossp-js

und

ipkg install py25-mercurial


sowie für einen Teamspeak 2 server laufen, aber das mit dem reboot/poweroff funktionierte schon vor dessen installation nicht.


Nun wäre meine Frage etvl. an Goetz, ob er eine Anleitung zur Erstellung eines Scriptes wie er es benutzt hat oder verfassen könnte. Am besten Schritt für schritt, sodass auch windoof nutzer wie ich mitkommen. Oder ein universell verwendbares Script vielleicht, das man nur anpassen muss?
Natürlich fände ich auch eine offizielle Lösung von Seiten Synologys gut, aber da habe ich noch nichts gehört, oder hat jemand da andere infos


Das wäre eine große Hilfe!
 

Wessix

Benutzer
Mitglied seit
14. Okt 2010
Beiträge
319
Punkte für Reaktionen
0
Punkte
0
Reboot Problem weg jetzt IPKG Problem

Hi habe immer noch die DS 411+ und hatte ja das Problem mir dem reboot bzw. herunterfahren.
Habe das Script von goetz
1 zu 1 übernommmen und in die entsprechenden Verzeichnisse kopiert:

meine rc.local im /etc Verzeichnis habe ich so verändert, dass alles auskommentiert ist:

#!/bin/sh

# Optware setup
#[ -x /etc/rc.optware ] && /etc/rc.optware start

#exit 0


das Script wie gesagt 1 zu 1 in /usr/local/etc/rc.d:

#!/bin/sh

# Optware setup

case $1 in
start)
for i in /opt/etc/init.d/S??* ;do

# Ignore dangling symlinks (if any).
[ ! -f "$i" ] && continue

case "$i" in
*.sh)
# Source shell script for speed.
(
trap - INT QUIT TSTP
set start
. $i
)
;;
*)
# No sh extension, so fork subprocess.
$i start
;;
esac
done
;;

stop)

for i in /opt/etc/init.d/S??* ;do

# Ignore dangling symlinks (if any).
[ ! -f "$i" ] && continue

case "$i" in
*.sh)
# Source shell script for speed.
(
trap - INT QUIT TSTP
set stop
. $i
)
;;
*)
# No sh extension, so fork subprocess.
$i stop ;;
esac
done
;;

*)
echo "Usage: $0 [start|stop]"
;;
esac


Nun funktioniert der reboot und das Herunterfahren wieder sauber.
Allerdings funktionieren meine IPKG Packete nichtmehr.

so z.B der Midnight Commander mc
oder aber auch screen
oder aber pyload mit allem was dazu gehört.


Muss ich die Ipkg sachen nun woanders hinkopieren oder einen neuen Verweis machen oder irgendwo noch etwas anpassen?:confused:


Viele Grüße Wessix
 

goetz

Super-Moderator
Teammitglied
Mitglied seit
18. Mrz 2009
Beiträge
13.555
Punkte für Reaktionen
23
Punkte
328
Hallo,
poste bitte noch den Inhalt von /etc/rc.optware. Wenn Du ipkg noch nicht auf Symlink umgestellt hast funktioniert ipkg nicht.
ipkg auf symlink umstellen
wobei der echte opt Pfad je nach System variieren kann /volume1/@optware oder /volume1/opt

Gruß Götz
 

Wessix

Benutzer
Mitglied seit
14. Okt 2010
Beiträge
319
Punkte für Reaktionen
0
Punkte
0
ok wird gemacht:
etc/rc.optware:

#! /bin/sh

if test -z "${REAL_OPT_DIR}"; then
# next line to be replaced according to OPTWARE_TARGET
REAL_OPT_DIR=/volume1/@optware
fi

case "$1" in
start)
echo "Starting Optware."
if test -n "${REAL_OPT_DIR}"; then
if ! grep ' /opt ' /proc/mounts >/dev/null 2>&1 ; then
mkdir -p /opt
mount -o bind ${REAL_OPT_DIR} /opt
fi
fi
[ -x /opt/etc/rc.optware ] && /opt/etc/rc.optware
;;
reconfig)
true
;;
stop)
echo "Shutting down Optware."
true
;;
*)
echo "Usage: $0 {start|stop|reconfig}"
exit 1
esac

exit 0
~




also bei mir gibbts auf Volume1 den Ordner @optware von daher nehme ich an das bei der DS 411+ @optware heißt
also muss der Symlink so lauten:
ln -s /opt /volume1/@optware

oder ?
Gruß und danke für die Hilfe
 

goetz

Super-Moderator
Teammitglied
Mitglied seit
18. Mrz 2009
Beiträge
13.555
Punkte für Reaktionen
23
Punkte
328
Hallo,
nein, ln -s <was> <wohin> also
ln -s /volume1/@optware /opt
das Verzeichnis /opt (alter Mountpoint) muß vorher gelöscht werden. Ein mount darf dann aber nicht aktiv sein, sonst ist die gesamte ipkg Installation weg.

Gruß Götz
 

Wessix

Benutzer
Mitglied seit
14. Okt 2010
Beiträge
319
Punkte für Reaktionen
0
Punkte
0
unmount

wenn ich
COOKIE> unmount /opt
-ash: unmount: not found

kann ich dann auch davon ausgehen dass es nciht gemounted ist?
wenn ich per cd /opt ins Verzeichnis wechsle und ls eingeb zeigt er mir auch keine dateien an.

mfg Wessix
 

goetz

Super-Moderator
Teammitglied
Mitglied seit
18. Mrz 2009
Beiträge
13.555
Punkte für Reaktionen
23
Punkte
328
Hallo,
das ja auch umount. Wenn keine dateienangezeigt werden ist da auch nichts gemountet, überprüfen kann man mit einem einfachen
mount


Gruß Götz
 

Wessix

Benutzer
Mitglied seit
14. Okt 2010
Beiträge
319
Punkte für Reaktionen
0
Punkte
0
Scheint zu funktionieren

Hi Goetz,
dickes Lob, so wie es aussieht scheint jetzt wieder alles zu funktionieren.

Also nochmal zusammengefasst für alle die das hier mitverfolgt haben und ähnliche Probleme haben.

Ausgangssituation war eine neue DS 411+.

- Auf diese wurde IPKG installiert um
- die notwendigen IPKG Packete für Pyload installieren zu können (siehe oben) und noch ein paar weitere wie z.B. den nützlichen Midnightcommander.

hat alles wunderbar funktioniert, bis ich merkte, dass meine DS nicht mehr richtig Bootet.

Dann habe ich diesen Thread gefunden und das Script von Goetz 1 zu 1 kopiert und an den entsprechenden stellen eingefügt, und die änderungen an den anderen Dateien durchgeführt (siehe oben).

Wichtig hierbei war der Symlink ( der jetzt zumindest für die DS411+ auch oben steht)

Nun scheint alles wieder Ordnungsgemäß zu laufen, auch pyload.

Jetzt muss ich nur noch ein Bootscript für pyload bekommen und alles rockt!:D

Vielen herzlichen Dank an goetz für seine kompetente Hilfe! :)
 

goetz

Super-Moderator
Teammitglied
Mitglied seit
18. Mrz 2009
Beiträge
13.555
Punkte für Reaktionen
23
Punkte
328
Hallo,
schau mal hier. Jetzt gehört das aber nach /usr/local/etc/rc.d und ich würde es ohne .sh am Dateiende speichern.

Gruß Götz

Nachtrag:
ACHTUNG: der obige Pfad ist falsch, das sript gehört nach /opt/etc/init.d und mit großem S am Anfang.
 
Zuletzt bearbeitet:

Wessix

Benutzer
Mitglied seit
14. Okt 2010
Beiträge
319
Punkte für Reaktionen
0
Punkte
0
Autostart läuft nicht

Hi Goetz,
sorry ich weiß zu diesem Thema existieren schon viele posts aber ich kriegs nicht zum laufen.

hab die datei s77pyload in /usr/local/etc/rc.d
mit folgendem Inhalt erstellt


#!/bin/sh

prefix="/opt"
PATH=${prefix}/bin:${prefix}/sbin:/sbin:/bin:/usr/sbin:/usr/bin
NAME="screen"
DAEMON="screen -dms python /opt/pyload/pyLoadCore.py"
DAEMON_OPTS=""


start() {
echo "Starting Service: $NAME"
$DAEMON $DAEMON_OPTS
}

stop() {
if [ -n "`pidof $NAME`" ]; then
echo "Stopping Service: $NAME"
killall $NAME 2> /dev/null
fi
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
sleep 4
start
;;
*)
echo "Usage: $0 (start|stop|restart)"
exit 1
;;
esac

exit 0

aber der pyloadCore läuft glaub nicht. zumindest habe ich kenien webzugriff und auch keinen wenn ich direkt von der Gui aus windows verbinden will.

siehst du noch nen fehler oder weißt noch was?
 

goetz

Super-Moderator
Teammitglied
Mitglied seit
18. Mrz 2009
Beiträge
13.555
Punkte für Reaktionen
23
Punkte
328
Hallo,
mit
Rich (BBCode):
ps ax|grep python
kannst Du sehen ob es gestartet wurde, poste mal die Ausgabe. Sollte es gestartet sein kann es sein, daß pyload im interaktiven Modus startete, dann muß man nochmal per screen -r an den Prozess und die Konfiguration noch einmal machen.
Das Script ist auch ausführbar? ls -la /usr/local/etc/rc.d

Gruß Götz
 

Wessix

Benutzer
Mitglied seit
14. Okt 2010
Beiträge
319
Punkte für Reaktionen
0
Punkte
0
COOKIE> ps ax|grep python
8809 root 2456 S grep python
COOKIE>


ist ausfühbar oder wenn die datei grün ist

COOKIE> ls -la /usr/local/etc/rc.d
drwxrwxrwx 2 root root 4096 Oct 20 19:34 .
drwxrwxrwx 3 root root 4096 Sep 27 15:37 ..
-rwxr-xr-x 1 root root 3435 Feb 25 2009 Webalizer.sh
-rwxr-xr-x 1 root root 1417 Oct 20 11:57 optware.sh
-rwxr-xr-x 1 root root 788 Jul 23 2009 phpMyAdmin.sh
-rwxr-xr-x 1 root root 1146 Oct 20 19:33 s77pyload
COOKIE>


für das screen -r kommt

COOKIE> screen -r
There is no screen to be resumed.

gruß wessix
 

goetz

Super-Moderator
Teammitglied
Mitglied seit
18. Mrz 2009
Beiträge
13.555
Punkte für Reaktionen
23
Punkte
328
Hallo,
urgs, fataler Fehler meinerseits:eek:, das Script gehört natürlich nach /opt/etc/init.d und bitte mit großem S am Anfang.

Sorry, Götz
 

Wessix

Benutzer
Mitglied seit
14. Okt 2010
Beiträge
319
Punkte für Reaktionen
0
Punkte
0
Jetzt funktioniert es!!!!!

WOW! goetz, Du bist wirklich Syno-Gott! :D

Es geht! meine Bemühungen der letzten 3 Tage haben ein ende gefunden :)

Also pyload Webinterface ist nach dem reboot verfügbar. Klasse.

Also ich glaube ich werde das mit dem Rebootproblem beseitigen und das autostart script meiner Anleitung "pyload installieren für noobs " hinzufügen.
Ich denke dass viele der User die pyload installieren wollen auch daran interessiert sind oder dieselben Probleme bekommen könnten wie ich.
Ich denke um am Wiki was zu ändern hab ich nicht genug fach know-how. Aber gerne schicke ich das Dokument an jemanden der da was ändern kann.

Ich denke so ein Dokument von Anfang bis Ende ist nicht schlecht, sodass man nicht in den ganzen threads suchen muss. wenn dann was nicht funktioniert :D kann man dann ja immer noch posten.

Also nochmal GROSSES dankeschön! Super der "support" für Anfänger