前言
有架過 Pterodactyl Panel (翼手龍面板) 的人,對 Panel 與 Wings 運作方式應該不陌生 但 Wings 默認只能由一個絕對位置進行伺服器檔案儲存,不能將伺服器的檔案分成兩個位置 前陣子架設時就發現了有這個問題,並上網查詢是否有人研究出來方法,但很可惜的 沒有。 因此我研究了一個方法可以讓兩個 Wings 同時運行在同一主機上且不互相干擾

實現辦法
官方教程是以新增 service 文件並以 Systemctl 指令進行控制 我們只需對 service 文件修改成 template unit (單元模板) 也就是讓本來單一的服務可以以模板的方式執行多個服務 用講的有點困難,我們直接開始操作,後面就懂了!
具體實現辦法
這是官方提供的 service 檔案
我們只要對紅色框起來的地方下手並修改檔案名稱即可
那要怎麼改呢?
因為 wings 預設會讀取 /etc/pterodactyl 底下的 config.yml 檔案
我們需要使用 --config= 這個啟動參數來指定我們的配置檔案,改成下方這樣就可以了
你會發現到裡面有個 %i 是做什麼用的,後面我會講,你先把它當作類似函數接受的參數就好
接下來我們來把 service 更名
更名完後輸入指令,重新載入 systemctl 守護程序
systemctl daemon-reload接下來我們用配置文件
配置文件一樣照常使用翼手龍面板生成配置文件
記得要改 Daemon Server File Directory 還有節點端口去 SFTP 端口

寫入文件時請注意要加一樣東西,在 config 與 yml 中間用點區隔
放上自定義 Wings 名稱,用於區別多個 wings 的服務

若都完成後使用以下指令加上你自定義的 Wings 名稱即可啟動多個 wings
systemctl start wings@1systemctl start wings@2我來解釋為何 service 文件裡面要加 %i
service 文件名稱凡有加上 @的都會被判斷為 template unit
在使用 systemctl 時代號後打的任何東西都會被 service 文件內的 %i 作為參數抓取使用
當執行以下指令時
systemctl start wings@1就可以看成 service 這樣註冊並執行了服務
ExecStart=/usr/local/bin/wings --config=/etc/pterodactyl/config.1.yml結語
這是我第一次寫教學文,寫的不好請見諒,希望能透過此文章幫助到大家 還有做完以上的步驟也別忘了註冊開機啟動
systemctl enable wings@1systemctl enable wings@2