Ubuntu Autostart init.d instructions #171

Closed
opened 2026-02-20 00:18:29 -05:00 by deekerman · 3 comments
Owner

Originally created by @danieledwardgeorgehitchcock on GitHub (Apr 6, 2018).

Originally assigned to: @Qstick on GitHub.

Support / Questions

Feature Request

Description of request and what problem are you looking to solve?

Add init.d setup instructions for Linux (Debian/Ubuntu) users.

Other Information

I have modified the Radarr init.d script from here: Radarr GitHub

Code which I have tested as working on my machine is:

#! /bin/sh
### BEGIN INIT INFO
# Provides: Lidarr
# 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 Lidarr
# Description: starts instance of Lidarr using start-stop-daemon
### END INIT INFO

############### EDIT ME ##################
# path to app
APP_PATH=/opt/Lidarr

# user
RUN_AS=lidarr

# path to mono bin
DAEMON=$(which mono)

# Path to store PID file
PID_FILE=/var/run/lidarr/lidarr.pid
PID_PATH=$(dirname $PID_FILE)

# script name
NAME=lidarr

# app name
DESC=Lidarr

# startup args
EXENAME="Lidarr.exe"
DAEMON_OPTS=" "$EXENAME

############### END EDIT ME ##################

LIDARR_PID=`ps auxf | grep Lidarr.exe | grep -v grep | awk '{print $2}'`

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 [ ! -d $DATA_DIR ]; then
    mkdir -p $DATA_DIR
    chown $RUN_AS $DATA_DIR
fi

if [ -e $PID_FILE ]; then
    PID=`cat $PID_FILE`
    if ! kill -0 $PID > /dev/null 2>&1; then
        echo "Removing stale $PID_FILE"
        rm $PID_FILE
    fi
fi

echo $LIDARR_PID > $PID_FILE

case "$1" in
    start)
        if [ -z "${LIDARR_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 "Lidarr already running."
        fi
    ;;
    stop)
        echo "Stopping $DESC"
        echo $LIDARR_PID > $PID_FILE
        start-stop-daemon --stop --pidfile $PID_FILE --retry 15
    ;;

    restart|force-reload)
        echo "Restarting $DESC"
        start-stop-daemon --stop --pidfile $PID_FILE --retry 15
        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

Could this be added to the wiki?

Originally created by @danieledwardgeorgehitchcock on GitHub (Apr 6, 2018). Originally assigned to: @Qstick on GitHub. ## Support / Questions ## Feature Request ### Description of request and what problem are you looking to solve? Add init.d setup instructions for Linux (Debian/Ubuntu) users. ### Other Information I have modified the Radarr init.d script from here: [Radarr GitHub](https://github.com/Radarr/Radarr/wiki/Autostart-on-Linux) Code which I have tested as working on my machine is: ``` #! /bin/sh ### BEGIN INIT INFO # Provides: Lidarr # 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 Lidarr # Description: starts instance of Lidarr using start-stop-daemon ### END INIT INFO ############### EDIT ME ################## # path to app APP_PATH=/opt/Lidarr # user RUN_AS=lidarr # path to mono bin DAEMON=$(which mono) # Path to store PID file PID_FILE=/var/run/lidarr/lidarr.pid PID_PATH=$(dirname $PID_FILE) # script name NAME=lidarr # app name DESC=Lidarr # startup args EXENAME="Lidarr.exe" DAEMON_OPTS=" "$EXENAME ############### END EDIT ME ################## LIDARR_PID=`ps auxf | grep Lidarr.exe | grep -v grep | awk '{print $2}'` 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 [ ! -d $DATA_DIR ]; then mkdir -p $DATA_DIR chown $RUN_AS $DATA_DIR fi if [ -e $PID_FILE ]; then PID=`cat $PID_FILE` if ! kill -0 $PID > /dev/null 2>&1; then echo "Removing stale $PID_FILE" rm $PID_FILE fi fi echo $LIDARR_PID > $PID_FILE case "$1" in start) if [ -z "${LIDARR_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 "Lidarr already running." fi ;; stop) echo "Stopping $DESC" echo $LIDARR_PID > $PID_FILE start-stop-daemon --stop --pidfile $PID_FILE --retry 15 ;; restart|force-reload) echo "Restarting $DESC" start-stop-daemon --stop --pidfile $PID_FILE --retry 15 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 ``` Could this be added to the wiki?
Author
Owner

@Qstick commented on GitHub (Apr 7, 2018):

Sure, will wiki let you add it? Just curious.

@Qstick commented on GitHub (Apr 7, 2018): Sure, will wiki let you add it? Just curious.
Author
Owner

@danieledwardgeorgehitchcock commented on GitHub (Apr 8, 2018):

Thanks, no, wiki seems to be locked.

@danieledwardgeorgehitchcock commented on GitHub (Apr 8, 2018): Thanks, no, wiki seems to be locked.
Author
Owner

@Qstick commented on GitHub (Apr 13, 2018):

Added

@Qstick commented on GitHub (Apr 13, 2018): Added
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/Lidarr#171
No description provided.