啟動真的讓我很困惑。似乎各地的不同地點都有不同的啟動方法。但是有沒有辦法定義它們的載入順序?
具體來說...我有一個問題,如果伺服器的 VPN 連線是在 PMS 啟動之前建立的,則用戶端無法發現 Plex 媒體伺服器 (PMS)。這讓我抓狂,但我發現可以透過關閉 PMS、關閉 VPN、打開 PMS,然後打開 VPN 來解決問題。
我不太確定 PMS 在啟動時如何自動加載,但 VPN 是我透過編輯 /etc/network/if-up.d/slickvpn 來定義的,其中包含以下內容:
#! /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
這是我在尋求自動連接 VPN 幫助時在某處(我想是在這個網站上)找到的腳本。
所以我猜 /etc/network/if-up.d/ 腳本是在 PMS 服務之前啟動的。我怎樣才能翻轉它?或其他解決方案?
答案1
我想你可能想嘗試一下暴發戶。您可以在 ifupdown 腳本中阻止 VPN 伺服器啟動(將檔案移至其他位置),然後進行一些新的工作。
建立(或修改,如果它已經存在,您應該在 中搜尋/etc/init
)PMS 啟動檔案/etc/init
並填寫它(**如果它已經存在,只需記下檔案名稱.conf
):
# 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
這是非常基本的暴發戶腳本。你應該添加/修改周圍的東西。現在是另一個腳本:
建立/etc/init/vpn.conf
文件並填入以下內容
# 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
完畢。