前言
有架過 Pterodactyl Panel (翼手龍面板) 的人,對Panel與Wings運作方式應該不陌生
但 Wings 默認只能由一個絕對位置進行伺服器檔案儲存,不能將伺服器的檔案分成兩個位置
前陣子架設時就發現了有這個問題,並上網查詢是否有人研究出來方法,但很可惜的 沒有。
因此我研究了一個方法可以讓兩個Wings同時運行在同一主機上且不互相干擾
實現辦法
官方教程是以新增 service 文件並以Systemctl指令進行控制
我們只需對 service 文件修改成 template unit (單元模板)
也就是讓本來單一的服務可以以模板的方式執行多個服務
用講的有點困難,我們直接開始操作,後面就懂了!
具體實現辦法
這是官方提供的service檔案
我們只要對紅色框起來的地方下手並修改檔案名稱即可 那要怎麼改呢?
因為wings預設會讀取 /etc/pterodactyl
底下的 config.yml
檔案
我們需要使用 --config=
這個啟動參數來指定我們的配置檔案,改成下方這樣就可以了 你會發現到裡面有個
%i
是做什麼用的,後面我會講,你先把它當作類似函數接受的參數就好 接下來我們來把service更名
mv /etc/systemd/system/wings.service /etc/systemd/system/[email protected]
更名完後輸入指令,重新載入systemctl守護程序
systemctl daemon-reload
接下來我們用配置文件
配置文件一樣照常使用翼手龍面板生成配置文件
記得要改 Daemon Server File Directory
還有節點端口去SFTP端口
寫入文件時請注意要加一樣東西,在config與yml中間用點區隔
放上自定義Wings名稱,用於區別多個wings的服務
若都完成後使用以下指令加上你自定義的Wings名稱即可啟動多個wings
systemctl start wings@1
systemctl 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@1
systemctl enable wings@2