[PD-cvs] scripts/debian/init.d pd,NONE,1.1

Hans-Christoph Steiner eighthave at users.sourceforge.net
Tue Apr 11 07:44:39 CEST 2006


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 at 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





More information about the Pd-cvs mailing list