I made some modifications to my original gnump3d init.d script when I needed more than one instance of GNUmp3d running (for multiple folders completely separated). I still haven’t quite figured out how to get the tag database to work for my second GNUmp3d instance, if anyone can help please leave a comment. Here’s the script and some brief instructions:
/etc/init.d/gnump3d :
#!/bin/bash
gmconfig="/etc/gnump3d/gnump3d.conf"
gmport="54321"
gmpidfile="/var/run/gnump3d_$gmport.pid"
case "$1" in
start)
if [ -f $gmpidfile ] ; then
echo "GNUmp3d already running on port $gmport"
else
echo "Starting GNUmp3d."
/usr/bin/gnump3d --background -config $gmconfig --port $gmport
sleep 1
ps -ef | grep -v "grep" | grep "config $gmconfig" | cut -c10-15 > $gmpidfile
fi
;;
stop)
if [ -f $gmpidfile ] ; then
echo "Shutting down GNUmp3d."
/bin/kill -9 $(cat $gmpidfile)
rm $gmpidfile
else
echo "GNUmp3d isn't running on port $gmport yet"
fi
;;
restart)
$0 stop
$0 start
;;
status)
if [ -f $gmpidfile ] ; then
echo "GNUmp3d running on port $gmport with config $gmconfig and pid $(cat $gmpidfile)"
echo $(ps -ef | grep -v "grep" | grep "config $gmconfig")
#echo
# code to display the other instance of gnump3d here...
else
echo "GNUmp3d isn't running yet"
fi
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
esac
exit 0
To run more than one copy of gnump3d with this simply make a copy of this script and call it something like gnump3d_2.
sudo cp -vip /etc/init.d/gnump3d /etc/init.d/gnump3d_2
Then change the new init.d script to point to your new config and port (pid file auto updates by port #).
gmconfig="/etc/gnump3d/gnump3d_2.conf" gmport="54322"
Make a copy of the stock gnump3d config and modify the necessary lines.
sudo cp -vip /etc/gnump3d/gnump3d.conf /etc/gnump3d/gnump3d_2.conf
In my config I modified these lines:
port = 54322 root = /home/gnump3d_2 user = gnump3d_2 logfile = /var/log/gnump3d/access_2.log errorlog = /var/log/gnump3d/error_2.log now_playing_path = /var/cache/gnump3d_2/serving tag_cache = /var/cache/gnump3d_2/song.tags
And lastly we’ll need to make the cache drectories:
mkdir /var/cache/gnump3d_2/ mkdir /var/cache/gnump3d_2/serving chmod -R 777 /var/cache/gnump3d_2 touch /var/cache/gnump3d_2/song.tags
And then you’re set to startup the second gnump3d instance.
/etc/init.d/gnump3d_2 start

