So, this is just my solution. Not sure is the most appropriate... please let me know if you see/have corrections/suggestions.
Installed in /opt/metabase. Created new directory for logs in /opt/metabase/log.
Created /etc/init.d/metabase script. Contents below.
Added service to start at boot:
sudo update-rc.d "metabase" defaults
I can now start the script, stop, see status with:
sudo systemctl start/stop/status metabase
To see the last entries in the log, do:
tail /opt/metabase/log/current
The log is managed by multilog. The script creates 3 log files of 10MB, which rotate.
The key command to run metabase is this:
nohup $JAVAPATH -jar $PATH_TO_JAR |multilog t s10000000 n3 '!tai64nlocal' /opt/metabase/log 2>&1
I have still to reboot the server, so the boot part is pending validation.
script /etc/init.d/metabase (I think USER is not needed anymore, just replace with your user):
#!/bin/sh # ### BEGIN INIT INFO # Provides: metabase # Required-Start: $remote_fs $syslog $time $network # Required-Stop: $remote_fs $syslog $time $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Metabase, agile analytics. # Description: Metabase is the easy, open source way for everyone # in your company to ask questions and learn from data. ### END INIT INFO #
SERVICE_NAME=metabase
PATH_TO_JAR=/opt/metabase/metabase.jar
PID_PATH_NAME=/opt/metabase/metabase-pid
JAVAPATH=/usr/bin/java
PATH=/sbin:/usr/sbin:/usr/local/sbin:/bin:/usr/bin:/usr/local/bin
USER=arcims
cd /opt/metabase
case $1 in
start)
echo "Starting $SERVICE_NAME ..."
if [ ! -f $PID_PATH_NAME ]; then
nohup $JAVAPATH -jar $PATH_TO_JAR |multilog t s10000000 n3 '!tai64nlocal' /opt/metabase/log 2>&1 &
echo $! > $PID_PATH_NAME
echo "$SERVICE_NAME started ..."
else
echo "$SERVICE_NAME is already running ..."
fi
;;
stop)
if [ -f $PID_PATH_NAME ]; then
PID=$(cat $PID_PATH_NAME);
echo "$SERVICE_NAME stoping ..."
# kill $PID;
pkill -f "java -jar $PATH_TO_JAR"
echo "$SERVICE_NAME stopped ..."
rm $PID_PATH_NAME
else
echo "$SERVICE_NAME is not running ..."
fi
;;
restart)
if [ -f $PID_PATH_NAME ]; then
PID=$(cat $PID_PATH_NAME);
echo "$SERVICE_NAME stopping ...";
# kill $PID;
pkill -f "java -jar $PATH_TO_JAR"
echo "$SERVICE_NAME stopped ...";
rm $PID_PATH_NAME
echo "$SERVICE_NAME starting ..."
nohup $JAVAPATH -jar $PATH_TO_JAR |multilog t s10000000 n3 '!tai64nlocal' /opt/metabase/log 2>&1 &
echo $! > $PID_PATH_NAME
echo "$SERVICE_NAME started ..."
else
echo "$SERVICE_NAME is not running ..."
fi
;;
esac