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/init
und füllen Sie sie aus (**falls sie bereits vorhanden ist, notieren Sie sich einfach den Namen der .conf
Datei):
# 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.conf
Datei 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.