Update of /cvsroot/pure-data/scripts/debian/init.d
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29541/debian/init.d
Added Files:
pd
Log Message:
properly working debian startup/shutdown script. Pd is now a daemon! We just need sysloggin...
--- NEW FILE: pd ---
#!/bin/bash -e
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
#
# This is a SysV-style startup script for Pd. It has been used on Debian
# extensively but should work on other SysV platforms.
#
# .hc <hans(a)at.or.at>
#
set -e
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="Pure Data"
NAME=pd
DAEMON=/usr/local/bin/$NAME
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0
# options
RUNPDDAEMON=no
USER=nobody
PORT=34985
# Read config file if it is present.
if [ -r /etc/default/$NAME ]
then
. /etc/default/$NAME
fi
if [ "$RUNPDDAEMON" != "yes" ];then
echo "Pd not configured to run as a daemon. Edit /etc/default/$NAME."
exit 1
fi
if [ "x$USER" = "x" ]
then
echo "Error: empty USER name"
exit 1
fi
PARAMS="-nogui -noaudio -nomidi $OPTIONS"
# for the log file
DATE=`date +20%y-%m-%d_%H.%M.%S`
#
# Function that starts the daemon/service.
#
d_start() {
# /bin/su - arw -c "/usr/bin/pd -nogui" > /tmp/pd-`date +20%y-%m-%d_%H.%M.%S`.log 2>&1 &
start-stop-daemon -v --start --quiet --background --make-pidfile \
--chuid $USER --pidfile $PIDFILE --exec $DAEMON -- $PARAMS
}
#
# Function that stops the daemon/service.
#
d_stop() {
start-stop-daemon --stop --quiet --pidfile $PIDFILE \
--user $USER --name $NAME --retry 5
# echo "quit;quit;quit;" | /usr/bin/pdsend $PORT
# sleep 5
# /usr/bin/killall -KILL pd || echo "Warning: $DESC was not running"
}
#
# Function that sends a SIGHUP to the daemon/service.
#
d_reload() {
start-stop-daemon --stop --quiet --pidfile $PIDFILE \
--name $NAME --signal 1
}
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
d_start
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME "
d_stop
echo "."
;;
#reload)
#
# If the daemon can reload its config files on the fly
# for example by sending it SIGHUP, do it here.
#
# If the daemon responds to changes in its config file
# directly anyway, make this a do-nothing entry.
#
# echo -n "Reloading $DESC configuration..."
# start-stop-daemon --stop --signal 1 --quiet --pidfile \
# /var/run/$NAME.pid --exec $DAEMON
# echo "done."
#;;
restart|force-reload)
#
# If the "reload" option is implemented, move the "force-reload"
# option to the "reload" entry above. If not, "force-reload" is
# just the same as "restart".
#
echo -n "Restarting $DESC: $NAME"
d_stop
sleep 1
d_start
echo "."
;;
*)
N=/etc/init.d/$NAME
# echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
echo "Usage: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0