#!/bin/bash PIDFILE=/tmp/calibre-server.pid RUNAS=gwh PORT=8081 # uncomment and adapt to enable authtentication AUTH="" # " --username=\"$RUNAS\" --password=\"password\"" OPTIONS=" --enable-local-write" LOGFILE=/home/$RUNAS/.calibre-server.log CALIBRE_LIBRARY_PATH="/home/$RUNAS/Documents/eBooks/Livres/" start() { echo "Starting Calibre server..." if [ ! -d $CALIBRE_LIBRARY_PATH ]; then echo "Library $CALIBRE_LIBRARY_PATH isn't accessible" exit fi su $RUNAS -c "calibre-server --port=$PORT --pidfile=$PIDFILE --log=$LOGFILE --daemonize $AUTH $OPTIONS \"$CALIBRE_LIBRARY_PATH\"" & [ $? -ne 0 ] && echo "Could not start calibre-server." } stop() { echo "Stopping Calibre server..." if [ ! -e $PIDFILE ]; then echo "Could not find pidfile: $PIDFILE" exit fi read PID < $PIDFILE ps aux | grep "$PID" | grep 'calibre-server' > /dev/null RUNNING=$? if [ $RUNNING -eq 0 ]; then kill $PID [ $? -eq 0 ] && rm $PIDFILE else echo "Could not find a calibre-server process with PID $PID." fi } case $1 in start ) start ;; stop ) stop ;; restart ) stop start ;; status ) if [ -e $PIDFILE ]; then read PID < $PIDFILE echo "calibre-server is running with PID $PID." else echo "calibre-server is not running." fi ;; * ) echo "Unrecognized command: $1" echo "Try one of the following: (start|stop|restart|status)" ;; esac