Wiki

Clone wiki

Shampoo / LiquidsoapDebianDefaults

Debian init.d script and default configuration file

default configuration

Here's an example Liquidsoap 'default' configuration script for Debian, save it as /etc/default/liquidsoap.

SHAMPOO_HOST=http://abhoth:8080/ShampooGWT
OFFAIR_FILE=/usr/local/etc/liquidsoap/res/offair.ogg
SEAT_FILE=/usr/local/etc/liquidsoap/shampoo_seats.json

This file contains the default configuration options the init.d Liquidsoap boot script will use

service boot script

= Here's the associated init.d script used to manage the life-cycle of the Liquidsoap daemon. Save it as /etc/init.d/liquidsoap.

#!/bin/sh
### BEGIN INIT INFO
# Provides:          liquidsoap
# Required-Start:    $remote_fs $network $time
# Required-Stop:     $remote_fs $network $time
# Should-Start:
# Should-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Starts the liquidsoap daemon
# Description:
### END INIT INFO

user=liquidsoap
group=liquidsoap
rundir=/var/run/liquidsoap
commandfile=/usr/local/etc/liquidsoap/run.liq
liquidsoap=/usr/local/bin/liquidsoap
rundir=/var/run/liquidsoap
logdir=/var/log/liquidsoap

# Test if $rundir exists
if [ ! -d $rundir ]; then
  mkdir -p $rundir;
  chown $user:$group $rundir
fi
# Test if $logdir exists
if [ ! -d $logdir ]; then
  mkdir -p $logdir;
  chown $user:$group $logdir
fi
#Test if $rundir exists
if [ ! -d $rundir ]; then
  mkdir -p $rundir;
  chown $user:$group $rundir
fi
# Test if $logdir exists
if [ ! -d $logdir ]; then
  mkdir -p $logdir;
  chown $user:$group $logdir
fi

pidfile=${rundir}/liquidsoap.pid
runfile=${rundir}/liquidsoap.sock
logfile=${logdir}/liquidsoap.log

. /etc/default/liquidsoap

extra_cmdline="-pid ${pidfile} -socket ${runfile} -log ${logfile}"
if [ ! -z ${SHAMPOO_HOST} ]; then extra_cmdline="${extra_cmdline} -shampoo-host ${SHAMPOO_HOST}"; fi
if [ ! -z ${OFFAIR_FILE} ]; then extra_cmdline="${extra_cmdline} -offair-media ${OFFAIR_FILE}"; fi
if [ ! -z ${SEAT_FILE} ]; then extra_cmdline="${extra_cmdline} -seat-conf ${SEAT_FILE}"; fi

case "$1" in
  stop)
    echo -n "Stopping liquidsoap channels: "
    pidfile=${rundir}/liquidsoap.pid
    echo -n "$pidfile "
    start-stop-daemon --stop --quiet --pidfile ${pidfile} --retry 4
    echo
    ;;

  start)
    echo -n "Starting liquidsoap channels: "
    pidfile=${rundir}/liquidsoap.pid
    start-stop-daemon --start --quiet --pidfile ${pidfile} \
          --chuid ${user}:${group} --exec ${liquidsoap} -- ${commandfile} -- ${extra_cmdline}
    echo
    ;;

  restart|force-reload)
    $0 stop
    $0 start
    ;;

  *)
    echo "Usage: $0 {start|stop|restart|force-reload}"
    exit 1
    ;;
esac

Updated