Acties:
  • 0 Henk 'm!

  • jacob.korf
  • Registratie: Januari 2010
  • Laatst online: 09-09 07:37
Beste medetweakers,

Ik zit met een probleem bij het automatisch opstarten van SABnzbd op het moment dat mijn server uitgaat (of andere manieren). Ik heb zelf een Synology USB station 2 waarbij ik op mijn aangesloten usb-stick extra root-geheugen d.m.v. een symlink heb gekoppeld. Nu heb ik alles geïnstalleerd inclusief SABnzbd, echter kan ik alleen door middel van de volgende code SABnzbd opstarten:
/opt/bin/python2.5 /opt/share/SABnzbd/SABnzbd.py -f /root/.sabnzbd/sabnzbd.ini -s 0.0.0.0:9200 -d

Elke keer als mijn server crashed / opnieuw opstart moet ik dit commando uitvoeren.

Ik heb de instructies precies uitgevoerd zoals op de volgende site is uitgelegd:
http://kevin.vanzonneveld...sabnzbd_on_your_synology/

Door volgend script aan te maken en te linken:
cat << EOT > /usr/syno/etc/rc.d/S99SABnzbd.sh
#!/bin/sh
if [ "start" = "$1" ]; then
/opt/bin/python2.5 /opt/share/SABnzbd/SABnzbd.py -f /root/.sabnzbd/sabnzbd.ini -s 0.0.0.0:9200 -d
elif [ "stop" = "$1" ]; then
/usr/bin/killall -9 python2.5
elif [ "restart" = "$1" ]; then
$0 stop
$0 start
elif [ "" = "$1" ]; then
echo "Start, stop or restart service? Use a parameter..."
fi
EOT



Vervolgens bovenstaande executable maken:
chmod +x /usr/syno/etc/rc.d/S99SABnzbd.sh

En starten:
/usr/syno/etc/rc.d/S99SABnzbd.sh start

Maar als ik probeer te starten gebeurd er niets...

Heb al vele websites afgestruind op zoek naar een autostart script, maar nergens de boel aan de praat gekregen. Is er iemand die mij kan helpen? ;(

[ Voor 7% gewijzigd door jacob.korf op 15-04-2011 13:27 ]


Acties:
  • 0 Henk 'm!

  • Mijzelf
  • Registratie: September 2004
  • Niet online
Levert 'cat /usr/syno/etc/rc.d/S99SABnzbd.sh' de output die je zou verwachten?

Acties:
  • 0 Henk 'm!

  • jacob.korf
  • Registratie: Januari 2010
  • Laatst online: 09-09 07:37
Bedoel je dat ik dat stuk over << EOT > weg moet halen? Zal het vanmiddag even proberen (ben nu nog aan het werk). Laat wel even weten wat het resultaat is.

Acties:
  • 0 Henk 'm!

  • sam.vimes
  • Registratie: Januari 2007
  • Laatst online: 08-06 08:44
jacob.korf schreef op vrijdag 15 april 2011 @ 13:10:
/.../
echter kan ik alleen door middel van de volgende code SABnzbd opstarten:
/opt/bin/python2.5 /opt/share/SABnzbd/SABnzbd.py -f /root/.sabnzbd/sabnzbd.ini  -s 0.0.0.0:9200 -d

/.../
/usr/syno/etc/rc.d/S99SABnzbd.sh:
/opt/bin/python2.5 /opt/share/SABnzbd/SABnzbd.py -f /root/.sabnzbd/sabnzbd.ini  -s 0.0.0.0:9200 -d
Zoals het hier staat is het commando in S99SABnzbd.sh exact gelijk aan dat wat je met de hand intypt. Het handmatige commando en het opstartscript zouden dus hetzelfde effect moeten hebben.
Dus wat bedoel je met "er gebeurt niets" in
En starten:
/usr/syno/etc/rc.d/S99SABnzbd.sh start

Maar als ik probeer te starten gebeurd er niets...
Wat gebeurt er wel als je het eerste commando (python2.5 etc.) uitvoert wat er niet gebeurt als je het tweede uitvoert? Mis je bijvoorbeeld een aantal opstartmeldingen van sabnzbd?

Heb je het opstartscript wel op de juiste manier aangemaakt? Als je bij het aanmaken een typfout hebt gemaakt is er een kans dat het script leeg is, en dan doet het ook niets. (Dat is denk ik wat medetweaker Mijzelf bedoelt als hij je vraagt de inhoud van het script weer te geven met cat.)

offtopic:
Overigens is het gebruik van
/usr/bin/killall -9 python2.5
in S99SABnzbd.sh een bijzonder slechte programmeerpraktijk:
  1. Door signaal -9 (KILL) krijgt het programma geen kans om een nette cleanup uit te voeren; gebruikelijk is -15 (TERM).
  2. Door python2.5 af te schieten worden alle processen die onder Python draaien omgelegd, niet alleen sabnzbd.

Acties:
  • 0 Henk 'm!

  • jacob.korf
  • Registratie: Januari 2010
  • Laatst online: 09-09 07:37
Als ik "/opt/bin/python2.5 /opt/share/SABnzbd/SABnzbd.py -f /root/.sabnzbd/sabnzbd.ini -s 0.0.0.0:9200 -d"
uitvoer, krijg ik SABnzbd aan de praat (zonder melding, maar kan naar 192.168.2.9:9200) en kan ik gewoon gebruik maken van SABnzbd.

Maar als ik "/usr/syno/etc/rc.d/S99SABnzbd.sh start"
uitvoer, krijg ik de volgende melding:
Start, stop or restart service? Use a parameter... wat suggereert dat hij altijd naar de elsif gaat ($1 = "").

Toch heb ik dit script blijkbaar nodig om SABnzbd op te starten als deze om één of andere reden uitgaat. Ik heb -9 (kill) nu uitgezet in het script, gebruik nu "/usr/bin/killall python2.5".

Wat betreft het script is dit wat ik kan lezen (ik ben geen linux goeroe):
$1 = start, zou SABnzbd moeten starten
$1 = stop, zou SABnzbd moeten stoppen
$1 = restart, zou SABnzbd moeten herstarten
$1 = leeg, return foutmelding met Start, stop or restart service? Use a parameter...

Het lijkt alsof het script altijd naar $1 = leeg gaat..
Weet ook niet precies of the chmod wel goed gaat, zie geen vreemde foutmelding of iets dergelijks.

[ Voor 25% gewijzigd door jacob.korf op 15-04-2011 15:14 ]


Acties:
  • 0 Henk 'm!

  • jacob.korf
  • Registratie: Januari 2010
  • Laatst online: 09-09 07:37
Mijzelf schreef op vrijdag 15 april 2011 @ 13:46:
Levert 'cat /usr/syno/etc/rc.d/S99SABnzbd.sh' de output die je zou verwachten?
Als ik dit uitvoer krijg ik het volgende terug:
#!/bin/sh
prefix="/opt"
PATH=/bin:/sbin:/sbin:/bin:/usr/sbin:/usr/bin
if [ "start" = "" ]; then
/opt/bin/python2.5 /opt/share/SABnzbd/sabnzbd/SABnzbd.py -f /root/.sabnzbd/sabnzbd.ini -s 0.0.0.0:9200 -d
elif [ "stop" = "" ]; then
/usr/bin/killall -9 python2.5
elif [ "restart" = "" ]; then
-ash stop
-ash start
elif [ "" = "" ]; then
echo "Start, stop or restart service? Use a parameter..."
fi

Het lijkt erop dat er geen waarde wordt gevuld ($1) als ik dit uitvoer.

Acties:
  • 0 Henk 'm!

  • JaQ
  • Registratie: Juni 2001
  • Laatst online: 00:11

JaQ

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/sh
if [ "start" = "$1" ]; then
  /opt/bin/python2.5 /opt/share/SABnzbd/SABnzbd.py -f /root/.sabnzbd/sabnzbd.ini  -s 0.0.0.0:9200 -d
  /opt/bin/python2.6 /volume1/@appstore/CouchPotato/CouchPotato.py -d
  nohup /opt/bin/python2.5 /volume1/@appstore/SickBeard/SickBeard.py >> /volume1/@appstore/SickBeard/sickbeard.log 2>&1 &
elif [ "stop" = "$1" ]; then
  /usr/bin/killall -9 python2.5
  /usr/bin/killall -9 python2.6
elif [ "restart" = "$1" ]; then
  -ash stop
  -ash start
elif [ "" = "" ]; then
  echo "Start, stop or restart service? Use a parameter..."
fi


Zoek de verschillen :)
en ja, kill -9 hoort niet en ik weet ook wel dat die meuk niet onder root hoort te draaien. Voor een thuisapparaat durf ik dat wel aan :)

[ Voor 10% gewijzigd door JaQ op 15-04-2011 18:40 ]

Egoist: A person of low taste, more interested in themselves than in me


Acties:
  • 0 Henk 'm!

  • jacob.korf
  • Registratie: Januari 2010
  • Laatst online: 09-09 07:37
JaQ schreef op vrijdag 15 april 2011 @ 18:38:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/sh
if [ "start" = "$1" ]; then
  /opt/bin/python2.5 /opt/share/SABnzbd/SABnzbd.py -f /root/.sabnzbd/sabnzbd.ini  -s 0.0.0.0:9200 -d
  /opt/bin/python2.6 /volume1/@appstore/CouchPotato/CouchPotato.py -d
  nohup /opt/bin/python2.5 /volume1/@appstore/SickBeard/SickBeard.py >> /volume1/@appstore/SickBeard/sickbeard.log 2>&1 &
elif [ "stop" = "$1" ]; then
  /usr/bin/killall -9 python2.5
  /usr/bin/killall -9 python2.6
elif [ "restart" = "$1" ]; then
  -ash stop
  -ash start
elif [ "" = "" ]; then
  echo "Start, stop or restart service? Use a parameter..."
fi


Zoek de verschillen :)
en ja, kill -9 hoort niet en ik weet ook wel dat die meuk niet onder root hoort te draaien. Voor een thuisapparaat durf ik dat wel aan :)
Wat bedoel je hier precies mee? Ik gebruik geen sickbeard en ik krijg met deze code nog steeds dezelfde melding.. op een ander forum las ik dat ik eventueel ook ksh ipv sh kan gebruiken, maar dan krijg ik een melding dat ik geen rechten heb (moet ik dan in mijn ksh een aantal regels toevoegen met gebruikersnaam & wachtwoord?). Ik wou dat ik gewoon de merty app kon installeren voor mijn synology usb station 2 maar helaas wordt dat niet ondersteund... :'(

Acties:
  • 0 Henk 'm!

  • sam.vimes
  • Registratie: Januari 2007
  • Laatst online: 08-06 08:44
Ach, ik heb het gevonden. Typisch iets waar je ook bij herhaalde controle overheen kijkt.
jacob.korf schreef op vrijdag 15 april 2011 @ 13:10:
/.../
Ik heb de instructies precies uitgevoerd zoals op de volgende site is uitgelegd:
http://kevin.vanzonneveld...sabnzbd_on_your_synology/

Door volgend script aan te maken en te linken:
cat << EOT > /usr/syno/etc/rc.d/S99SABnzbd.sh
#!/bin/sh
if [ "start" = "$1" ]; then
  /opt/bin/python2.5 /opt/share/SABnzbd/SABnzbd.py -f /root/.sabnzbd/sabnzbd.ini  -s 0.0.0.0:9200 -d
/.../
Die eerste regel moet zijn:
cat << 'EOT' > /usr/syno/etc/rc.d/S99SABnzbd.sh

Let op de single quotes om EOT.
Door het niet quoten van EOT worden alle $1-variabelen direct geëxpandeerd, waardoor ze in het script niet meer voorkomen.
Gebruik de volgende keer een echte editor :+ dan heb je hier geen last van.
Als je het opstartscript toch gaat wijzigen, kun je de laatste elif gelijk weghalen:
elif [ "" = "$1" ]; then
wordt
else
Wordt het script net wat robuuster van.

Acties:
  • 0 Henk 'm!

  • jacob.korf
  • Registratie: Januari 2010
  • Laatst online: 09-09 07:37
sam.vimes schreef op donderdag 21 april 2011 @ 11:00:
Ach, ik heb het gevonden. Typisch iets waar je ook bij herhaalde controle overheen kijkt.

[...]

Die eerste regel moet zijn:
cat << 'EOT' > /usr/syno/etc/rc.d/S99SABnzbd.sh

Let op de single quotes om EOT.
Door het niet quoten van EOT worden alle $1-variabelen direct geëxpandeerd, waardoor ze in het script niet meer voorkomen.
Gebruik de volgende keer een echte editor :+ dan heb je hier geen last van.
Als je het opstartscript toch gaat wijzigen, kun je de laatste elif gelijk weghalen:
elif [ "" = "$1" ]; then
wordt
else
Wordt het script net wat robuuster van.
Hartelijk dank! ik heb de wijzigingen doorgevoerd en nu werkt het!
Pagina: 1