diff options
author | Niklas Nille Åkerström <nille.kungen[AT]gmail.com> | 2010-05-11 22:55:13 +0200 |
---|---|---|
committer | David Somero <xgizzmo@slackbuilds.org> | 2010-05-11 22:55:13 +0200 |
commit | fd133f51ff16a501bc64ea218b0fa86df2dafb47 (patch) | |
tree | 16028a468b52e1b89fedb65e87e93cd4bcb496db /system/cdemu-daemon/rc.cdemud | |
parent | 01c5a6263c5ade57ed671a1e857ccdfe1dce02f3 (diff) |
system/cdemu-daemon: Added to 12.1 repository
Diffstat (limited to 'system/cdemu-daemon/rc.cdemud')
-rw-r--r-- | system/cdemu-daemon/rc.cdemud | 174 |
1 files changed, 174 insertions, 0 deletions
diff --git a/system/cdemu-daemon/rc.cdemud b/system/cdemu-daemon/rc.cdemud new file mode 100644 index 000000000000..5be12abe3b8d --- /dev/null +++ b/system/cdemu-daemon/rc.cdemud @@ -0,0 +1,174 @@ +#!/bin/sh +# +# cdemu-daemon: CDEmu daemon +# + +### BEGIN INIT INFO +# Provides: cdemu-daemon +# Short-Description: Start the CDEmu daemon +# Description: System mode startup script for +# the CDEmu daemon. +### END INIT INFO + +# This script is based on the ubuntu and fedora init script. +# Modified by Nille Åkerström + +NAME="cdemud" +DESC="cdemu-daemon" +LOCK="/var/lock/${DESC}.lock" +PID=$(/sbin/pidof -o %PPID ${NAME}) + +# Get the configuration information from /etc/rc.d/rc.cdemud.conf: +. /etc/rc.d/rc.cdemud.conf + +start() +{ + # Check if already started + if [ -n "${PID}" ] ;then + echo "${DESC} is already running at pid: ${PID}" + return ${RETVAL} + exit + fi + + # Load module + if [ -n "${MODULE}" ]; then + echo -n "Inserting ${MODULE} kernel module" + modprobe "${MODULE}" >/dev/null 2>&1 + RETVAL=$? + if [ ${RETVAL} -eq 0 ]; then + echo -e "\t\t\t\t\t[ OK ]\r" + else + echo -e "\t\t\t\t\t[FAILED]\r" + fi + fi + + # Wait until control device is created... + if [ -n "${CTL_DEVICE}" ]; then + echo -n "Waiting for ${CTL_DEVICE} to be created" + + CTL_WAIT=30 # Wait at most 30 seconds + RETVAL=1 + until [ ${CTL_WAIT} -eq 0 ]; do + if [ -c "${CTL_DEVICE}" ]; then + CTL_WAIT=0 + RETVAL=0 + else + CTL_WAIT=$((CTL_WAIT-1)) + sleep 1 + fi + done + + if [ ${RETVAL} -eq 0 ]; then + echo -e "\t\t\t\t[ OK ]\r" + else + echo -e "\t\t\t\t[FAILED]\r" + fi + fi + + + # Daemon arguments + DAEMON_ARGS="--daemonize" + + if [ -n "${DEVICES}" ]; then + DAEMON_ARGS="${DAEMON_ARGS} --num-devices=${DEVICES}" + fi + if [ -n "${CTL_DEVICE}" ]; then + DAEMON_ARGS="${DAEMON_ARGS} --ctl-device=${CTL_DEVICE}" + fi + if [ -n "${AUDIO_DRIVER}" ]; then + DAEMON_ARGS="${DAEMON_ARGS} --audio-driver=${AUDIO_DRIVER}" + fi + if [ -n "${BUS}" ]; then + DAEMON_ARGS="${DAEMON_ARGS} --bus=${BUS}" + fi + + # Start daemon + echo -n "Starting ${DESC}" + $NAME ${DAEMON_ARGS} >/dev/null 2>&1 + RETVAL=$? + if [ ${RETVAL} -eq 0 ] && touch ${LOCK} ; then + echo -e "\t\t\t\t\t\t[ OK ]\r" + else + echo -e "\t\t\t\t\t\t[FAILED]\r" + fi + return ${RETVAL} +} + +stop() +{ + # Stopping daemon + echo -n "Stopping ${DESC}" + if [ -n "${PID}" ] ;then + $NAME -k >/dev/null 2>&1 + RETVAL=$? + if [ ${RETVAL} -eq 0 ]; then + echo -e "\t\t\t\t\t\t[ OK ]\r" + else + echo -e "\t\t\t\t\t\t[FAILED]\r" + fi + else + echo -e "\t\t\t\tWarning: ${DESC} isn't running" + RETVAL=0 + fi + + + # Unload module + echo -n "Removing ${MODULE} kernel module" + LOADED=`lsmod | grep -o -e ^${MODULE} -` + if [ "${LOADED}" = "${MODULE}" ]; then + modprobe -r "${MODULE}" >/dev/null 2>&1 + RETVAL=$? + if [ ${RETVAL} -eq 0 ]; then + echo -e "\t\t\t\t\t[ OK ]\r" + else + echo -e "\t\t\t\t\t[FAILED]\r" + fi + return ${RETVAL} + if [ $RETVAL -eq 0 ]; then + rm -f $LOCK + fi + else + echo -e "\t\t\tWarning: ${MODULE} isn't loaded" + RETVAL=0 + fi + return ${RETVAL} +} + +restart() { + stop + RETVAL=$? + if [ ${RETVAL} -eq 0 ]; then + PID=$(/sbin/pidof -o %PPID ${NAME}) + start + RETVAL=$? + if [ ${RETVAL} -ne 0 ]; then + echo "Couldn't start ${DESC} retry in 3sec." + sleep 3 + start + RETVAL=$? + fi + fi + return ${RETVAL} +} + +# See how we were called. +case "$1" in + "start") + start + ;; + "stop") + stop + ;; + "restart") + restart + ;; + "force-reload" | "reload") + echo "Warning: Not implemented" + ;; + *) + echo "Usage: $0 {start|stop|restart|force-reload|reload}" + ;; +esac + +exit ${RETVAL} + |