--- a
+++ b/web/init/scweb-service
@@ -0,0 +1,365 @@
+#!/bin/sh
+#
+# Upmpdcli Songcast Receiver control web interface init script.
+#     	Copyright (C) 2015 J.F. Dockes
+
+# Derived from:
+# 
+#     	VirtualBox web service API daemon init script.
+#
+#     	Copyright (C) 2006-2012 Oracle Corporation
+#
+#     	This file is part of VirtualBox Open Source Edition (OSE), as
+#     	available from http://www.virtualbox.org. This file is free software;
+# 	you can redistribute it and/or modify it under the terms of the GNU
+# 	General Public License (GPL) as published by the Free Software
+# 	Foundation, in version 2 as it comes in the "COPYING" file of the
+# 	VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+# 	hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+#
+#
+# chkconfig: 35 35 65
+# description: Songcast Receiver control web interface
+#
+### BEGIN INIT INFO
+# Provides:       scweb-service
+# Default-Start:  2 3 4 5
+# Default-Stop:   0 1 6
+# Description:    Songcast Receiver control web interface
+### END INIT INFO
+
+PATH=$PATH:/bin:/sbin:/usr/sbin
+
+[ -f /etc/debian_release -a -f /lib/lsb/init-functions ] || NOLSB=yes
+
+if [ -n "$INSTALL_DIR" ]; then
+    binary="$INSTALL_DIR/scweb-standalone.py"
+    scctl="$INSTALL_DIR/scctl"
+else
+    binary="/usr/share/upmpdcli/web/scweb-standalone.py"
+    scctl="/usr/bin/scctl"
+fi
+
+# silently exit if the package was uninstalled but not purged,
+# applies to Debian packages only (but shouldn't hurt elsewhere)
+[ ! -f /etc/debian_release -o -x $binary ] || exit 0
+
+[ -r /etc/default/scweb ] && . /etc/default/scweb
+
+system=unknown
+if [ -f /etc/redhat-release ]; then
+    system=redhat
+    PIDFILE="/var/lock/subsys/scweb-service"
+elif [ -f /etc/SuSE-release ]; then
+    system=suse
+    PIDFILE="/var/lock/subsys/scweb-service"
+elif [ -f /etc/debian_version ]; then
+    system=debian
+    PIDFILE="/var/run/scweb-service"
+elif [ -f /etc/gentoo-release ]; then
+    system=gentoo
+    PIDFILE="/var/run/scweb-service"
+elif [ -f /etc/arch-release ]; then
+     system=arch
+     PIDFILE="/var/run/scweb-service"
+elif [ -f /etc/slackware-version ]; then
+    system=slackware
+    PIDFILE="/var/run/scweb-service"
+elif [ -f /etc/lfs-release ]; then
+    system=lfs
+    PIDFILE="/var/run/scweb-service.pid"
+else
+    system=other
+    if [ -d /var/run -a -w /var/run ]; then
+        PIDFILE="/var/run/scweb-service"
+    fi
+fi
+
+if [ -z "$NOLSB" ]; then
+    . /lib/lsb/init-functions
+    fail_msg() {
+        echo ""
+        log_failure_msg "$1"
+    }
+    succ_msg() {
+        log_success_msg " done."
+    }
+    begin_msg() {
+        log_daemon_msg "$@"
+    }
+fi
+
+if [ "$system" = "redhat" ]; then
+    . /etc/init.d/functions
+    if [ -n "$NOLSB" ]; then
+        start_daemon() {
+            usr="$1"
+            shift
+            daemon --user $usr $@
+        }
+        fail_msg() {
+            echo_failure
+            echo
+        }
+        succ_msg() {
+            echo_success
+            echo
+        }
+        begin_msg() {
+            echo -n "$1"
+        }
+    fi
+fi
+
+if [ "$system" = "suse" ]; then
+    . /etc/rc.status
+    start_daemon() {
+        usr="$1"
+        shift
+        su - $usr -c "$*"
+    }
+    if [ -n "$NOLSB" ]; then
+        fail_msg() {
+            rc_failed 1
+            rc_status -v
+        }
+        succ_msg() {
+            rc_reset
+            rc_status -v
+        }
+        begin_msg() {
+            echo -n "$1"
+        }
+    fi
+fi
+
+if [ "$system" = "debian" ]; then
+    start_daemon() {
+        usr="$1"
+        shift
+        bin="$1"
+        shift
+        start-stop-daemon --background --chuid $usr --start --exec $bin -- $@
+    }
+    killproc() {
+        start-stop-daemon --stop --exec $@
+    }
+    if [ -n "$NOLSB" ]; then
+        fail_msg() {
+            echo " ...fail!"
+        }
+        succ_msg() {
+            echo " ...done."
+        }
+        begin_msg() {
+            echo -n "$1"
+       }
+    fi
+fi
+
+if [ "$system" = "gentoo" ]; then
+    if [ -f /sbin/functions.sh ]; then
+        . /sbin/functions.sh
+    elif [ -f /etc/init.d/functions.sh ]; then
+        . /etc/init.d/functions.sh
+    fi
+    start_daemon() {
+        usr="$1"
+        shift
+        bin="$1"
+        shift
+        start-stop-daemon --background --chuid $usr --start --exec $bin -- $@
+    }
+    killproc() {
+        start-stop-daemon --stop --exec $@
+    }
+    if [ -n "$NOLSB" ]; then
+        fail_msg() {
+            echo " ...fail!"
+        }
+        succ_msg() {
+            echo " ...done."
+        }
+        begin_msg() {
+            echo -n "$1"
+        }
+        if [ "`which $0`" = "/sbin/rc" ]; then
+            shift
+        fi
+    fi
+fi
+
+if [ "$system" = "arch" ]; then
+    USECOLOR=yes
+    . /etc/rc.d/functions
+    start_daemon() {
+        usr="$1"
+        shift
+        su - $usr -c "$*"
+        test $? -eq 0 && add_daemon rc.`basename $2`
+    }
+    killproc() {
+        killall $@
+        rm_daemon `basename $@`
+    }
+    if [ -n "$NOLSB" ]; then
+        fail_msg() {
+            stat_fail
+        }
+        succ_msg() {
+            stat_done
+        }
+        begin_msg() {
+            stat_busy "$1"
+        }
+    fi
+fi
+
+if [ "$system" = "slackware" ]; then
+    killproc() {
+        killall $1
+        rm -f $PIDFILE
+    }
+    if [ -n "$NOLSB" ]; then
+        fail_msg() {
+            echo " ...fail!"
+        }
+        succ_msg() {
+            echo " ...done."
+        }
+        begin_msg() {
+            echo -n "$1"
+        }
+    fi
+    start_daemon() {
+        usr="$1"
+        shift
+        su - $usr -c "$*"
+    }
+fi
+
+if [ "$system" = "lfs" ]; then
+    . /etc/rc.d/init.d/functions
+    if [ -n "$NOLSB" ]; then
+        fail_msg() {
+            echo_failure
+        }
+        succ_msg() {
+            echo_ok
+        }
+        begin_msg() {
+            echo $1
+        }
+    fi
+    start_daemon() {
+        usr="$1"
+        shift
+        su - $usr -c "$*"
+    }
+    status() {
+        statusproc $1
+    }
+fi
+
+if [ "$system" = "other" ]; then
+    if [ -n "$NOLSB" ]; then
+        fail_msg() {
+            echo " ...fail!"
+        }
+        succ_msg() {
+            echo " ...done."
+        }
+        begin_msg() {
+            echo -n "$1"
+        }
+    fi
+fi
+
+check_single_user() {
+    if [ -n "$2" ]; then
+        fail_msg "VBOXWEB_USER must not contain multiple users!"
+        exit 1
+    fi
+}
+
+start() {
+    if ! test -f $PIDFILE; then
+        [ -z "$SCWEB_USER" ] && exit 0
+        begin_msg "Starting scweb Songcast control web interface";
+        check_single_user $SCWEB_USER
+        echo SCWEB_USER $SCWEB_USER single ok
+        PARAMS=""
+        [ -n "$SCWEB_ADDRESS" ]        && PARAMS="$PARAMS -a $SCWEB_ADDRESS"
+        [ -n "$SCWEB_PORT" ]           && PARAMS="$PARAMS -p $SCWEB_PORT"
+
+        echo start_daemon $SCWEB_USER $binary $PARAMS
+        start_daemon $SCWEB_USER $binary $PARAMS > /dev/null 2>&1
+        # ugly: wait until the final process has forked
+        sleep .1
+        PID=`ps ax | egrep 'python .*/scweb-standalone' | grep -v grep | awk '{print $1}'`
+        if [ -n "$PID" ]; then
+            echo "$PID" > $PIDFILE
+            RETVAL=0
+            succ_msg
+        else
+            RETVAL=1
+            fail_msg
+        fi
+    fi
+    return $RETVAL
+}
+
+stop() {
+    if test -f $PIDFILE; then
+        begin_msg "Stopping scweb web interface";
+        killproc $binary
+        RETVAL=$?
+        if ! pidof $binary > /dev/null 2>&1; then
+            rm -f $PIDFILE
+            succ_msg
+        else
+            fail_msg
+        fi
+    fi
+    return $RETVAL
+}
+
+restart() {
+    stop && start
+}
+
+status() {
+    echo -n "Checking for scweb web interface"
+    if [ -f $PIDFILE ]; then
+        echo " ...running"
+    else
+        echo " ...not running"
+    fi
+}
+
+case "$1" in
+start)
+    start
+    ;;
+stop)
+    stop
+    ;;
+restart)
+    restart
+    ;;
+force-reload)
+    restart
+    ;;
+status)
+    status
+    ;;
+setup)
+    ;;
+cleanup)
+    ;;
+*)
+    echo "Usage: $0 {start|stop|restart|status}"
+    exit 1
+esac
+
+exit $RETVAL