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 |