Quote from Pheoxy: “Found a bit of free time so here's the proper one copied to a share in .txt form.(Hidden Content)”
Tried the provided init.d script but it had a pair of errors, which were easily fixed. Below is the init.d script that works for…
The only problem I had with the scripts on this page are they are missing
JACKETT_PID=`ps auxf | grep JackettConsole.exe | grep -v grep | awk '{print $2}'`
The scripts will work to start Jackett but you can't stop or get a status from them because the pid file is always empty as $JACKET_PID is never defined. Here's mine with the added pid. Assumes install in /opt/jackett and running as user sonarr.
Code
#! /bin/sh
### BEGIN INIT INFO
# Provides: jackett
# Required-Start: $local_fs $network $remote_fs
# Required-Stop: $local_fs $network $remote_fs
# Should-Start: $NetworkManager
# Should-Stop: $NetworkManager
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts instance of Jackett within Jackett
# Description: starts instance of Jackett using start-stop-daemon
### END INIT INFO
############### EDIT ME ##################
# path to app
APP_PATH=/opt/jackett
# user
RUN_AS=sonarr
# path to mono bin
DAEMON=/usr/bin/mono
# Path to store PID file
PID_FILE=/var/run/jackett/jackett.pid
PID_PATH=$(dirname $PID_FILE)
# script name
NAME=jackett
# app name
DESC=jackett
# startup args
EXENAME="JackettConsole.exe"
JACKETT_PID=`ps auxf | grep JackettConsole.exe | grep -v grep | awk '{print $2}'`
DAEMON_OPTS="$EXENAME -l -t"
############### END EDIT ME ##################
test -x $DAEMON || exit 0
set -e
#Look for PID and create if doesn't exist
if [ ! -d "$PID_PATH" ]; then
mkdir -p $PID_PATH
chown $RUN_AS $PID_PATH
fi
if [ -e "$PID_FILE" ]; then
PID=`cat $PID_FILE`
if ! kill -0 $PID > /dev/null 2>&1; then
rm $PID_FILE
fi
fi
echo $JACKETT_PID > $PID_FILE
case "$1" in
start)
if [ -z "${JACKETT_PID}" ]; then
echo "Starting $DESC"
rm -rf $PID_PATH || return 1
install -d --mode=0755 -o $RUN_AS $PID_PATH || return 1
start-stop-daemon -d $APP_PATH -c $RUN_AS --start --background --pidfile $PID_FILE --exec $DAEMON -- $DAEMON_OPTS
else
echo "Jackett already running."
fi
;;
stop)
echo "Stopping $DESC"
if [ ! -z "${JACKETT_PID}" ]; then
start-stop-daemon --stop --pidfile $PID_FILE --retry 15
fi
;;
restart|force-reload)
echo "Restarting $DESC"
if [ ! -z "${JACKETT_PID}" ]; then
start-stop-daemon --stop --pidfile $PID_FILE --retry 15
fi
start-stop-daemon -d $APP_PATH -c $RUN_AS --start --background --pidfile $PID_FILE --exec $DAEMON -- $DAEMON_OPTS
;;
status)
# Use LSB function library if it exists
if [ -f /lib/lsb/init-functions ]; then
. /lib/lsb/init-functions
if [ -e $PID_FILE ]; then
status_of_proc -p $PID_FILE "$DAEMON" "$NAME" && exit 0 || exit $?
else
log_daemon_msg "$NAME is not running"
exit 3
fi
else
# Use basic functions
if [ -e $PID_FILE ]; then
PID=`cat $PID_FILE`
if kill -0 $PID > /dev/null 2>&1; then
echo " * $NAME is running"
exit 0
fi
else
echo " * $NAME is not running"
exit 3
fi
fi
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|force-reload|status}" >&2
exit 1
;;
esac
exit 0
Alles anzeigen