PDA

View Full Version : Start SlimServer on BootUp (Suse 9.2)



en4cer
2005-08-22, 04:17
Hi,

I've installed the RPMs of SlimServer_v6.1.1 on Suse 9.2 and changed the script (slimserver) in /etc/init.d/ to an modified script from an older post in this forum. The script is working correct.

When I start the script by "hand" sudo /etc/init.d/slimserver start" the slimserver starts up and works fine.

But when I try to start the script automaticaly by going to YAST -> Runleveleditor -> Setting the script to start automaticaly in Runlevel 5.... it would'nt start on Bootup....

Is there anything I must change because of the rightsmanagement or something else ?

BTW: to get the modified script to working I had to comment out the line refering to /etc/rc.config because in Suse 9.2 is no rc.config ... maybe this has something to do with it...

but I can't understand why it doesn't work and its working when I start it by "hand"

en4cer
2005-08-22, 05:03
Here is my script

I commented out the line . /etc/rc.config

#! /bin/sh
# Copyright (c) 1995-2000 SuSE GmbH Nuernberg, Germany.
#
# Author: Kurt Garloff <feedback at suse.de>
#
# init.d/SLIMP3
#
# and symbolic its link
#
# /sbin/rcslimp3
#
# slimserver.init This shell script takes care of starting and stopping
# the Slim streaming MP3 server.
#
# chkconfig: 345 80 30
# description:
# processname: slimserver.pl
# config: /etc/slimserver.conf
#
### BEGIN INIT INFO
# Provides: SLIMP3
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Description: Start SLIMP3 server to allow serving of SliMP3 clients.
# Slim streaming MP3 server
### END INIT INFO

# Source SuSE config
#. /etc/rc.config

# Determine the base and follow a runlevel link name.
base=${0##*/}
link=${base#*[SK][0-9][0-9]}

# Force execution if not called by a runlevel directory.
test $link = $base && START_SLIMP3=yes
test "$START_SLIMP3" = yes || exit 0

# SliMP3 config
SLIMP3_USER="slimserver"
SLIMP3_HOME="/usr/local/slimserver"
SLIMP3_CFG="/etc/slimserver.pref"
SLIMP3_LOG="/var/log/slimserver.log"
SLIMP3_ARGS="--prefsfile=$SLIMP3_CFG --logfile=$SLIMP3_LOG"

SLIMP3_BIN=$SLIMP3_HOME/slimserver.pl
test -x $SLIMP3_BIN || exit 5

# Shell functions sourced from /etc/rc.status:
# rc_check check and set local and overall rc status
# rc_status check and set local and overall rc status
# rc_status -v ditto but be verbose in local rc status
# rc_status -v -r ditto and clear the local rc status
# rc_failed set local and overall rc status to failed
# rc_failed <num> set local and overall rc status to <num><num>
# rc_reset clear local rc status (overall remains)
# rc_exit exit appropriate to overall rc status
. /etc/rc.status

# First reset status of this service
rc_reset

# Return values acc. to LSB for all commands but status:
# 0 - success
# 1 - generic or unspecified error
# 2 - invalid or excess argument(s)
# 3 - unimplemented feature (e.g. "reload")
# 4 - insufficient privilege
# 5 - program is not installed
# 6 - program is not configured
# 7 - program is not running
#
# Note that starting an already running service, stopping
# or restarting a not-running service as well as the restart
# with force-reload (in case signalling is not supported) are
# considered a success.

case "$1" in
start)
echo -n "Starting SliMP3 server"
## Start daemon with startproc(8). If this fails
## the echo return value is set appropriate.

# NOTE: startproc return 0, even if service is
# already running to match LSB spec.
startproc $SLIMP3_BIN $SLIMP3_ARGS

# Remember status and be verbose
rc_status -v
;;
stop)
echo -n "Shutting down SliMP3 server"
## Stop daemon with killproc(8) and if this fails
## set echo the echo return value.

killproc -TERM $SLIMP3_BIN

# Remember status and be verbose
rc_status -v
;;
try-restart)
## Stop the service and if this succeeds (i.e. the
## service was running before), start it again.
## Note: try-restart is not (yet) part of LSB (as of 0.7.5)
$0 status >/dev/null && $0 restart

# Remember status and be quiet
rc_status
;;
restart)
## Stop the service and regardless of whether it was
## running or not, start it again.
$0 stop
$0 start

# Remember status and be quiet
rc_status
;;
force-reload)
## Signal the daemon to reload its config. Most daemons
## do this on signal 1 (SIGHUP).
## If it does not support it, restart.

echo -n "Reload service SliMP3 server"
## if it supports it:
killproc -HUP $SLIMP3_BIN
#touch /var/run/slimp3.pid
rc_status -v

## Otherwise:
#$0 stop && $0 start
#rc_status
;;
reload)
## Like force-reload, but if daemon does not support
## signalling, do nothing (!)

# If it supports signalling:
echo -n "Reload service SliMP3 server"
killproc -HUP $SLIMP3_BIN
#touch /var/run/slimp3.pid
rc_status -v

## Otherwise if it does not support reload:
#rc_failed 3
#rc_status -v
;;
status)
echo -n "Checking for SliMP3 server: "
## Check status with checkproc(8), if process is running
## checkproc will return with exit status 0.

# Status has a slightly different for the status command:
# 0 - service running
# 1 - service dead, but /var/run/ pid file exists
# 2 - service dead, but /var/lock/ lock file exists
# 3 - service not running

# NOTE: checkproc returns LSB compliant status values.
checkproc $SLIMP3_BIN
rc_status -v
;;
probe)
## Optional: Probe for the necessity of a reload,
## give out the argument which is required for a reload.

test $SLIMP3_CFG -nt /var/run/slimp3.pid && echo reload
;;
*)
echo "Usage: $0
{start|stop|status|try-restart|restart|force-reload|reload|probe}"
exit 1
;;
esac
rc_exit