• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

init script -> programm beim booten starten -> probs

hi,

ich wollte beim booten meinen shoutcast server automatisch zuenden. dazu hab ich mir die faq angeschaut
http://www.linux-club.de/viewtopic.php?t=16069
und auch folgendes posting
http://www.linux-club.de/viewtopic.php?t=38167&highlight=init+script

dementsprechend habe ich mein script geschrieben.
das teil funzt auch, allerdings gibt der shoutcast server beim starten in dem konsolenfenster standartmaessig einen text aus.
d.h. ich kann wenn ich in der konsole den server gestartet habe (rcshoutcast start), kann in dem gleichen fenster den server mit rcshoutcast stop nicht mehr schliessen (muss neue konsole aufmachen).
wenn ich jetzt das script beim booten einbinde, wird der server gestartet, aber der bootvorgang nicht mehr fortgesetzt (musste mit cd starten und den link in rc3.d entfernen)

hier mal zuerst das script:


### BEGIN INIT INFO
# Provides: Shoutcast Server
# Required-Start: $network $remote_fs $syslog
# Required-Stop: $syslog $remote_fs
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Short-Description: Startet Shoutcast Server
# Description: Startet den Shoutcast Server beim Booten
### END INIT INFO


#!/bin/sh

PROG=/home/wolfgang/shoutcast/shoutcast-1-9-5-linux-glibc6/sc_serv
PARAMETER="/home/wolfgang/shoutcast/shoutcast-1-9-5-linux-glibc6/sc_serv.conf"


case "$1" in
'start')
echo "Starting Shoutcast Server";
$PROG $PARAMETER
;;

'stop')
echo "Stopping Shoutcast Server";
killall $PROG
;;

*)
echo "Usage: $0 { start | stop }"
exit 1
;;

esac
exit 0


und die ausgabe beim starten von rcshoutcast

linux:/ # rcshoutcast start
Starting Shoutcast Server
*******************************************************************************
** SHOUTcast Distributed Network Audio Server
** Copyright (C) 1998-2004 Nullsoft, Inc. All Rights Reserved.
** Use "sc_serv filename.ini" to specify an ini file.
*******************************************************************************

Event log:
<11/30/05@15:30:09> [SHOUTcast] DNAS/Linux v1.9.5 (Dec 27 2004) starting up...
<11/30/05@15:30:09> [main] pid: 5715
<11/30/05@15:30:09> [main] loaded config from /home/wolfgang/shoutcast/shoutcast
-1-9-5-linux-glibc6/sc_serv.conf
<11/30/05@15:30:09> [main] initializing (usermax:3 portbase:8056)...
<11/30/05@15:30:09> [main] No ban file found (sc_serv.ban)
<11/30/05@15:30:09> [main] No rip file found (sc_serv.rip)
<11/30/05@15:30:09> [main] opening source socket
<11/30/05@15:30:09> [main] source thread starting
<11/30/05@15:30:09> [source] listening for connection on port 8057
<11/30/05@15:30:09> [main] opening client socket
<11/30/05@15:30:09> [main] Client Stream thread [0] starting



wo liegt denn jetzt der hund begraben ? irgendwie muss das doch zu starten sein ?
 
es sollte auch in shoutcast.conf einen parameter geben, mit dem man ziel des logs und arbeit als daemon wunschen kann - nun, hillel kennt schoutcast nicht, er vermutet nur ...
 
ok ich hab jetzt mittlerweile einen weg gefunden den server beim booten zu starten.
das programm mit "&" in den hintergrund schicken und die ausgabe auf /dev/null umleiten.
wenn ich den server mit "rcshoutc start" starte und "rcshoutc stop" wieder anhalte funzt es wunderbar. mit dem runleveleditor unter kde yast kann ich den server nicht starten, ich klicke auf "start" und das programm bleibt hängen (fenster "starte shoutcast" bleibt offen). erst wenn ich per kommandozeile stoppe, kommt yast zurueck und meldet es sei erfolgreich gestartet.
beim booten klappt der start trotzdem, ich haette jetzt nur gern noch die ausgabe "done" oder "failed" mit eingebaut.
die frage ist nur, wie genau mache ich das denn ???

in der faq http://www.linux-club.de/viewtopic.php?t=16069
steht man muesse rc_status -v ausgeben, die frage ist nur wie ?
ich kann ja sicher nicht einfach rc_status -v in mein script einbaun und dann gibt es "done" aus ?


#! /bin/sh

### BEGIN INIT INFO
# Provides: Shoutcast Server
# Required-Start: $network $remote_fs $syslog
# Required-Stop: $syslog $remote_fs
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Short-Description: Startet Shoutcast Server
# Description: Startet den Shoutcast Server beim Booten
### END INIT INFO


. /etc/rc.status

rc_reset


PROG=/home/wolfgang/shoutcast/shoutcast-1-9-5-linux-glibc6/sc_serv
PARAMETER="/home/wolfgang/shoutcast/shoutcast-1-9-5-linux-glibc6/sc_serv.conf"


case "$1" in
'start')
echo "Starting Shoutcast Server";
$PROG $PARAMETER > /dev/null &
;;

'stop')
echo "Stopping Shoutcast Server";
killall $PROG
;;

*)
echo "Usage: $0 { start | stop }"
exit 1
;;

esac
exit 0
rc_exit
 
super !!!
mit rc_status -v1 gibt er done bzw failed sogar in der richtigen zeile aus.

was noch interessant zu wissen waere:
kann ich irgendwo beeinflussen in welcher reihenfolge die programme gestartet werden ?

hintergrund:
ich füttere meinem shoutcast server einen stream meiner soundkarte mit hilfe eines programms names "sc_trans"
sc_trans meckert natuerlich wenn es gestarted wird, aber keinen server findet, d.h. es muesste sichergestellt sein, das zuerst der server und dann das "trans" gezuendet wird.
 
und wie soll ich das einbaun das startproc ?

PROG=/home/wolfgang/shoutcast/shoutcast-1-9-5-linux-glibc6/sc_serv
PARAMETER="/home/wolfgang/shoutcast/shoutcast-1-9-5-linux-glibc6/sc_serv.conf"


case "$1" in
'start')
echo "Starting Shoutcast Server";
$PROG $PARAMETER > /dev/null startproc
;;


???
 
Oben