如何指定啟動腳本(CLI)的順序?

如何指定啟動腳本(CLI)的順序?

啟動真的讓我很困惑。似乎各地的不同地點都有不同的啟動方法。但是有沒有辦法定義它們的載入順序?

具體來說...我有一個問題,如果伺服器的 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

完畢。

相關內容