Toon posts:

SABnzbd op Debian

Pagina: 1
Acties:

  • Extreme smell
  • Registratie: April 2006
  • Laatst online: 26-05 12:20
Beste tweakers,

Ik heb het voor elkaar gekregen om SABnzbd op een Western Digital My Book Live te laten draaien.
de My Book Live draait op een Debian Lenny distributie, en is benaderbaar via SSH.

Ik kan SABnzbd laten draaien met dit commando:

code:
1
MyBookLive:~# python /opt/SABnzbd-0.6.1/SABnzbd.py 0.0.0.0:8085


Nu blijft SABnzbd dus alleen draaien als de terminal open blijft.
Ik wil dus dat SABnzbd start bij het opstarten van de schijf, en ik wil SABnzbd ook kunnen starten en stoppen via SSH. Ik dacht er zelf aan om hem als een daemon te draaien.
Ik heb hiervoor deze link gevonden: http://wiki.sabnzbd.org/install-as-a-unix-daemon

Nu vraag ik mij af of dit zo gaat werken?
En ik heb zelf amper ervaring met linux, dus ik weet niet precies hoe ik dat script moet installeren.
Ik dacht zelf door het script in textwrangler te zetten, opslaan als sabnzbd.ini en dan in de goeie map zetten.
Iemand hulp of advies?

Thanks ;)

  • Mijzelf
  • Registratie: September 2004
  • Niet online
Het is geen inifile, maar een script.

In Debian zet je deze in /etc/init.d, maak hem executable,
code:
1
chmod a+x /etc/init.d/jouw_script_naam
en dan maak je in /etc/rc2.d een symlink naar dit scrip, met een naam die begint met S99.
code:
1
ln -s /etc/init.d/jouw_script_naam /etc/rc2.d/S99jouw_script_naam



Bij het opstarten worden alle /etc/rc2.d/S* scripts aangeroepen met 'start' als argument (in numerieke volgorde, vandaar de 99)

Je kunt de zaak met de hand starten en stoppen:
code:
1
2
/etc/init.d/jouw_script_naam start
/etc/init.d/jouw_script_naam stop


Ik heb geen idee wat textwrangler is, maar je moet zorgen dat het script unix lineendings heeft.

  • Extreme smell
  • Registratie: April 2006
  • Laatst online: 26-05 12:20
Ok ik begrijp het bijna, alleen snap ik dat scripten nog niet helemaal.
Ik moet hem dus niet opslaan als inifile maar als script. Wat voor extensie heeft dat dan?

Met textwrangler kan ik btw exporteren met Unix linebreaks.

  • DutchNutcase
  • Registratie: Augustus 2005
  • Niet online

DutchNutcase

E = mc^2

Extreme smell schreef op donderdag 26 mei 2011 @ 13:50:
Ok ik begrijp het bijna, alleen snap ik dat scripten nog niet helemaal.
Ik moet hem dus niet opslaan als inifile maar als script. Wat voor extensie heeft dat dan?

Met textwrangler kan ik btw exporteren met Unix linebreaks.
In *NIX zijn extensies er vooral voor de vorm en de gebruiker. :X Dus maak er iets leuks van. Of natuurlijk geen extensie, wat vrij standaard is in /etc/init.d/

Luctor et Emergo || specs


  • Jaap-Jan
  • Registratie: Februari 2001
  • Laatst online: 09:29

Jaap-Jan

Geen IPv6- ready check meer :(

In plaats van zelf die symlinks aan te maken, kun je beter

update-rc.d jouw_script_naam defaults
draaien. Dan worden alle benodige symlinks aangemaakt en wordt de daemon ook netjes gestopt als het apparaat wordt afgesloten. :)

| Last.fm | "Mr Bent liked counting. You could trust numbers, except perhaps for pi, but he was working on that in his spare time and it was bound to give in sooner or later." -Terry Pratchett


  • Extreme smell
  • Registratie: April 2006
  • Laatst online: 26-05 12:20
Jaap-Jan schreef op donderdag 26 mei 2011 @ 14:57:
[...]
In plaats van zelf die symlinks aan te maken, kun je beter

update-rc.d jouw_script_naam defaults
draaien. Dan worden alle benodige symlinks aangemaakt en wordt de daemon ook netjes gestopt als het apparaat wordt afgesloten. :)
Ik heb dit script in /etc/init.d geplaatst:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/sh

case "$1" in
start)
  echo "Starting SABnzbd."
  /usr/bin/sudo -u benjamin11 -H /opt/SABnzbd-0.6.2/SABnzbd.py -d -f /home/benjamin11/.sabnzbd/sabnzbd.ini
;;
stop)
  echo "Shutting down SABnzbd."
  /usr/bin/wget -q --delete-after "http://0.0.0.0:8085/sabnzbd/api?mode=shutdown&apikey=1ad1bc3fa97f731c993cd80c00e9d5d3"
;;
*)
  echo "Usage: $0 {start|stop}"
  exit 1
esac

exit 0

Als ik dit commando gebruik dan krijg ik het volgende terug:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
MyBookLive:/etc/init.d# cd
MyBookLive:~# chmod a+x  /etc/init.d/sabnzbd
MyBookLive:~# update-rc.d sabnzbd defaults
update-rc.d: warning: /etc/init.d/sabnzbd missing LSB information
update-rc.d: see <http://wiki.debian.org/LSBInitScripts>
 Adding system startup for /etc/init.d/sabnzbd ...
   /etc/rc0.d/K20sabnzbd -> ../init.d/sabnzbd
   /etc/rc1.d/K20sabnzbd -> ../init.d/sabnzbd
   /etc/rc6.d/K20sabnzbd -> ../init.d/sabnzbd
   /etc/rc2.d/S20sabnzbd -> ../init.d/sabnzbd
   /etc/rc3.d/S20sabnzbd -> ../init.d/sabnzbd
   /etc/rc4.d/S20sabnzbd -> ../init.d/sabnzbd
   /etc/rc5.d/S20sabnzbd -> ../init.d/sabnzbd


Ik heb gelijk maar ff gekeken of ik hem kon starten (ik wist natuurlijk dat het niet ging werken omdat er iets mist :+ )

Ik kreeg terug dat MyBookLive geen bekende user is

Vervolgens heb ik MyBookLive in het script vervangen voor mijn eigen username. Dan krijg ik het volgende terug:

code:
1
2
MyBookLive:~# /etc/init.d/sabnzbd start
-bash: /etc/init.d/sabnzbd: Permission denied



wat klopt er nou niet?

  • Jaap-Jan
  • Registratie: Februari 2001
  • Laatst online: 09:29

Jaap-Jan

Geen IPv6- ready check meer :(

Ik heb hier het script van SABnzbdplus zoals het op Debian Squeeze is.

Veel langer, maar misschien werkt het.
#!/bin/sh
#
# Copyright (C) 2008-2010 by JCF Ploemen <linux@jp.pp.ru>
# released under GPL, version 2 or later

################################################
#                                              #
#  TO CONFIGURE EDIT /etc/default/sabnzbdplus  #
#                                              #
################################################

### BEGIN INIT INFO
# Provides:          sabnzbdplus
# Required-Start:    $local_fs $network $remote_fs
# Required-Stop:     $local_fs $network $remote_fs
# Should-Start:      NetworkManager
# Should-Stop:       NetworkManager
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: SABnzbd+ binary newsgrabber
### END INIT INFO

DAEMON=/usr/bin/sabnzbdplus
SETTINGS=/etc/default/sabnzbdplus

([ -x $DAEMON ] && [ -r $SETTINGS ]) || exit 0

DESC="SABnzbd+ binary newsgrabber"
DEFOPTS="--daemon"
PYTHONEXEC="^$(sed -n '1s/^#\!\([a-z0-9\.\/]\+\)\(.*\)/\1(\2)?/p' $DAEMON)"
PIDFILE=/var/run/sabnzbdplus.pid
SETTINGS_LOADED=FALSE

# these are only accepted from the settings file
unset USER CONFIG HOST PORT EXTRAOPTS

. /lib/lsb/init-functions

check_retval() {
	if [ $? -eq 0 ]; then
		log_end_msg 0
		return 0
	else
		log_end_msg 1
		exit 1
	fi
}

is_running() {
	# returns 0 when running, 1 otherwise
	PID="$(pgrep -f -x -u $USER "$PYTHONEXEC $DAEMON $DEFOPTS.*")"
	RET=$?
	[ $RET -gt 1 ] && exit 1 || return $RET
}

load_settings() {
	if [ $SETTINGS_LOADED != "TRUE" ]; then
		. $SETTINGS

		[ -z "$USER" ] && {
			log_warning_msg "$DESC: not configured, aborting. See $SETTINGS";
			return 1; }

		OPTIONS="$DEFOPTS"
		[ -n "$CONFIG" ] && OPTIONS="$OPTIONS --config-file $CONFIG"
		[ -n "$HOST" ] && SERVER="$HOST" || SERVER=
		[ -n "$PORT" ] && SERVER="$SERVER:$PORT"
		[ -n "$SERVER" ] && OPTIONS="$OPTIONS --server $SERVER"
		[ -n "$EXTRAOPTS" ] && OPTIONS="$OPTIONS $EXTRAOPTS"
		SETTINGS_LOADED=TRUE
	fi
	return 0
}

start_sab() {
	load_settings || exit 0
	if ! is_running; then
		log_daemon_msg "Starting $DESC"
		start-stop-daemon --quiet --chuid $USER --start --exec $DAEMON -- $OPTIONS
		check_retval
		# create a pidfile; we don't use it but some monitoring app likes to have one
		[ -w $(dirname $PIDFILE) ] && \
			pgrep -f -x -n -u $USER "$PYTHONEXEC $DAEMON $OPTIONS" > $PIDFILE
	else
		log_success_msg "$DESC: already running (pid $PID)"
	fi
}

stop_sab() {
	load_settings || exit 0
	if is_running; then
		TMPFILE=$(mktemp /tmp/sabnzbdplus.XXXXXXXXXX || exit 1)
		trap '[ -f $TMPFILE ] && rm -f $TMPFILE' EXIT
		echo "$PID" > $TMPFILE
		log_daemon_msg "Stopping $DESC"
		start-stop-daemon --stop --user $USER --pidfile $TMPFILE --retry 30
		check_retval
	else
		log_success_msg "$DESC: not running"
	fi
	[ -f $PIDFILE ] && rm -f $PIDFILE
}

case "$1" in
	start)
		start_sab
	;;
	stop)
		stop_sab
	;;
	force-reload|restart)
		stop_sab
		start_sab
	;;
	status)
		load_settings || exit 4
		if is_running; then
			log_success_msg "$DESC: running (pid $PID)"
		else
			log_success_msg "$DESC: not running"
			[ -f $PIDFILE ] && exit 1 || exit 3
		fi
	;;
	*)
		log_failure_msg "Usage: $0 {start|stop|restart|force-reload|status}"
		exit 3
	;;
esac

exit 0


En maak dit aan in /etc/default/sabnzbdplus (aanpassen waar nodig):
# This file is sourced by /etc/init.d/sabnzbdplus
#
# When SABnzbd+ is started using the init script, the
# --daemon option is always used, and the program is
# started under the account of $USER, as set below.
#
# Each setting is marked either "required" or "optional";
# leaving any required setting unconfigured will cause
# the service to not start.

# [required] user or uid of account to run the program as:
USER=

# [optional] full path to the configuration file of your choice;
#            otherwise, the default location (in $USER's home
#            directory) is used:
CONFIG=

# [optional] hostname/ip and port number to listen on:
HOST=
PORT=

# [optional] extra command line options, if any:
EXTRAOPTS=


En als het goed is krijg je dan niet die warnings over de missende LSB- informatie in update-rc.d.

Doe eerst even een
update-rc.d <naam script> remove
en dan opnieuw met update-rc.d de symlinks aanmaken.

[Voor 10% gewijzigd door Jaap-Jan op 26-05-2011 16:13]

| Last.fm | "Mr Bent liked counting. You could trust numbers, except perhaps for pi, but he was working on that in his spare time and it was bound to give in sooner or later." -Terry Pratchett

Pagina: 1


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee