Bueno, después de haber hecho el articulo de “Chrooting SHOUTcast“, he decido publicar el script de inicio que uso para ejecutar el servicio, este se divide en dos archivos, uno sobre /etc/init.d/shoutcast y otro en /usr/sbin/shoutcast
/usr/sbin/shoutcast:
#!/bin/sh
#SHOUTcast Server 0.1 by RwZ
#For SHOUTcast Server
# Directorio de enjaulamiento
SHOUTJAIL=/shoutjail
# Directorio de configuración dentro de la jaula
SHOUTCONF=/etc/shoutcast
# Usuario no privilegiado con el que se ejecuta
SHOUTUSER=shoutcast
if [ "$UID" -ne 0 ];
then
if [ "$UID" -ne 0 ];
then
echo "You must be root to run this script"
exit 64
fi
fi
check_pid ()
{
if [ -e /var/run/sc_$1.pid ]
then
PID=`cat /var/run/sc_$1.pid`
else
PID=0
fi
}
make_pid()
{
PID=`pidof -s sc_serv`
echo $PID > /var/run/sc_$1.pid
}
noconf ()
{
echo ""
echo "Wrong config file"
echo "Please specify a filename"
echo "-h|--help for usage"
echo ""
exit 68
}
start ()
{
start-stop-daemon --start --background --nicelevel -20 \
--exec=/usr/sbin/chroot -- $SHOUTJAIL /bin/sudo -b -u \
shoutcast /bin/sc_serv $SHOUTCONF/$1.conf
make_pid $1
check_pid $1
if [ $PID -ne 0 ]
then
echo ""
echo "Shoutcast server running with conf: "$1
echo ""
else
echo ""
echo "ERROR Shoutcast server failed to start"
echo ""
exit 66
fi
}
stop ()
{
check_pid $1
if [ $PID -ne 0 ]
then
kill $PID
echo ""
echo "Shoutcast server killed with conf: "$1" and PID: "$PID" Stopped."
echo ""
rm /var/run/sc_$1.pid
else
echo ""
echo "ERROR Shoutcast server with conf: "$1" Not Running."
echo ""
exit 67
fi
}
case $1 in
-h|--help)
echo ""
echo "Shoutcast script by RwZ"
echo " start [config file]"
echo " stop [config file]"
echo " restart [config file]"
echo " status [config file]"
echo ""
;;
start)
check_pid $2
if [ $PID -ne 0 ]
then
echo ""
echo "Shoutcast server is already running with PID: " $PID
echo ""
exit 70
else
start $2
fi
;;
stop)
stop $2
;;
restart)
stop $2
start $2
;;
status)
check_pid $2
if [ $PID -ne 0 ]
then
echo ""
echo "Shoutcast server with config file: "$2" Running with PID: "$PID
echo ""
else
echo ""
echo "Shoutcast server with config file: "$2" Not Running"
echo ""
fi
;;
* )
echo ""
echo "Invalid Argument $1"
echo "-h|--help for usage"
echo ""
exit 69
;;
esac
exit 0
/etc/init.d/shoutcast
#!/bin/sh
#SHOUTcast script 0.1 by RwZ
#For SHOUTcast server
#Path to ranchito script
SHOUTSCRIPT=/usr/sbin/shoutcast
case $1 in
start)
$SHOUTSCRIPT start config
;;
stop)
$SHOUTSCRIPT stop config
;;
restart)
$SHOUTSCRIPT restart config
;;
status)
$SHOUTSCRIPT status config
;;
*)
echo "Error"
;;
esac
exit 0
Para activarlo en una distribución Ubuntu
update-rc.d shoutcast defaults 99
Este script es muy basico, puede mejorarse, si ese es el caso y deseas compartirlo, no dudes en dejar un comentario.
Entradas (RSS)