Wie gebe ich die Reihenfolge der Startskripte an (CLI)?

Wie gebe ich die Reihenfolge der Startskripte an (CLI)?

Der Start verwirrt mich wirklich. Es scheint, dass verschiedene Methoden zum Starten von Dingen an verschiedenen Orten überall vorkommen. Aber gibt es eine Möglichkeit, die Reihenfolge zu definieren, in der sie geladen werden?

Genauer gesagt ... ich habe ein Problem, bei dem Plex Media Server (PMS) von Clients nicht erkannt werden kann, wenn die VPN-Verbindung des Servers vor dem Start von PMS hergestellt wird. Es hat mich wahnsinnig gemacht, aber ich habe herausgefunden, dass ich das Problem lösen kann, indem ich PMS herunterfahre, das VPN herunterfahre, PMS einschalte und dann das VPN einschalte.

Ich bin nicht ganz sicher, wie PMS sich beim Start automatisch lädt, aber das VPN habe ich definiert, indem ich /etc/network/if-up.d/slickvpn wie folgt bearbeitet habe:

#! /bin/bash

REQUIRED_CONNECTION_NAME="Wired connection 1"
VPN_CONNECTION_NAME="myvpn"

activ_con=$(nmcli con status | grep "${REQUIRED_CONNECTION_NAME}")
activ_vpn=$(nmcli con status | grep "${VPN_CONNECTION_NAME}")
if [ "${activ_con}" -a ! "${activ_vpn}" ];
then
    nmcli con up id "${VPN_CONNECTION_NAME}"
fi

Das ist ein Skript, das ich irgendwo (ich glaube auf dieser Site) gefunden habe, als ich Hilfe zum automatischen Verbinden eines VPN gesucht habe.

Ich vermute also, dass /etc/network/if-up.d/-Skripte vor dem PMS-Dienst gestartet werden. Wie kann ich das umkehren? Oder gibt es eine andere Lösung?

Antwort1

Ich denke, Sie sollten es stattdessen mit Upstart versuchen. Sie können den Start des VPN-Servers in den ifupdown-Skripten stoppen (indem Sie die Datei an eine andere Stelle verschieben) und dann einige Upstart-Jobs ausführen.

Erstellen Sie (oder ändern Sie, wenn sie bereits vorhanden ist; suchen Sie in /etc/init) die PMS-Startdatei /etc/initund füllen Sie sie aus (**falls sie bereits vorhanden ist, notieren Sie sich einfach den Namen der .confDatei):

# pms - Plex Media Server

description "Plex Media Server"

start on (local-filesystems and net-device-up IFACE!=lo)
## here you can define what interface you can wait, just change IFACE!=lo for IFACE=eth0, etc.

## This stops the job at shutdown
stop on runlevel [!2345]

script
    exec /path/to/pms/server/binar
end script

Dies ist ein sehr einfaches Upstart-Skript. Sie können Dinge hinzufügen/ändern. Nun zum anderen Skript:

Erstellen Sie die /etc/init/vpn.confDatei und füllen Sie diese mit folgendem Inhalt

# vpn - Virtual Private Network server

description "Virtual Private Network server"

start on started plexmediaserver
## now, the VPN server will only start if PMS starts :D

## This stops the job at shutdown you can modify it and make it to stop before stoping PMS
stop on runlevel [!2345]

env REQUIRED_CONNECTION_NAME="Wired connection 1"
env VPN_CONNECTION_NAME="myvpn"

export REQUIRED_CONNECTION_NAME
export VPN_CONNECTION_NAME

script
    exec /usr/bin/nmcli con up id "${VPN_CONNECTION_NAME}"
end script

Erledigt.

verwandte Informationen