Ich habe mir für den Plex Media Server ein Init-Skript geschrieben, was meine Anforderungen erfüllt. Es ist nicht perfekt, funktioniert aber ziemlich zuverlässig und reicht für meine Belange allemal.

Fehler oder Verbesserungsvorschläge können gern in die Kommentare geschrieben werden.

#!/bin/sh
### BEGIN INIT INFO
# Provides:          plexmediaserver
# Required-Start:    $syslog $networking
# Required-Stop:     
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Plex Media Server
### END INIT INFO

PLEX_BIN_NAME="Plex Media Server"
PLEX_START_SCRIPT="/usr/sbin/start_pms"

[ -r /etc/default/plexmediaserver ] && . /etc/default/plexmediaserver

is_running() {
    pgrep -f "${PLEX_BIN_NAME}" >/dev/null
    [ $? -gt 0 ] && return 1 || return 0
}

do_start() {
    if is_running; then
        echo "Plex Media Server is already running."
    else
        echo -n "Start Plex Media Server: "
        su -l ${PLEX_MEDIA_SERVER_USER} -c "${PLEX_START_SCRIPT} &" >/dev/null 2>&1
        echo "done"
    fi
}

do_stop() {
    if ! is_running; then
        echo "Plex Media Server is not running."
    else
        echo -n "Stop Plex Media Server: "
        for i in $(pgrep -f "Plex Media Server") $(pgrep -f "Plex Plug-in"); do
            kill ${i} >/dev/null 2>&1
            if ps -p ${i} >/dev/null; then sleep 1; kill -9 ${i} >/dev/null 2>&1; fi
        done
        echo "done"
    fi
}

do_status() {
    if is_running; then
        echo "Plex Media Server is running."
    else
        echo "Plex Media Server is stopped."
    fi
}

case "$1" in
    start)
        do_start
    ;;
    stop)
        do_stop
    ;;
    restart)
        do_stop
        do_start
    ;;
    status)
        do_status
    ;;
    *)
        echo "Usage: ${0} {start|stop|restart|status}"
        exit 3
    ;;
esac

Download

Nächster Beitrag Vorheriger Beitrag