伺服器
伺服器頁面就是伺服器的主控台。讀完這一頁,你就能啟動和停止伺服器、檢視它的輸出、向它傳送命令、讓它在當機後自動重新啟動,並且知道結束 lip 時伺服器會怎樣。
如果你還不熟悉按鍵和螢幕上的各個部分,請先讀介面導覽。
頁面的組成
- 狀態行說明伺服器是否在執行。它下面是啟動或停止按鈕,以及自動重新啟動選項。
- 輸出區是伺服器輸出的內容。
- 輸入列用來輸入發給伺服器的命令。只有伺服器執行時才有這一行。
Tab 依次在各部分之間移動:按鈕和選項、輸出區、輸入列。
伺服器的每種狀態
狀態行顯示的總是下面幾種之一。
這裡還沒有伺服器
沒有遊戲的資料夾裡沒有東西可執行。頁面只有一個按鈕。
按 Enter 建立伺服器。這會啟動工作區頁面的建立伺服器嚮導。
未執行
○ 未运行表示伺服器沒有執行,並且自 lip 啟動以來沒有執行過。輸出區是空的。
在啟動上按 Enter 啟動伺服器。
執行中
按下「啟動」後,在伺服器的程式真正跑起來之前,狀態是 ● 正在啟動。通常只是一瞬間。lip 第一次需要為伺服器準備系統時會久一些,例如 Windows 上的 Visual C++ 執行庫,或者 Linux 和 macOS 上的 Wine。如果這一步失敗,lip 會顯示失敗原因,狀態回到 ○ 未執行。
之後狀態變成 ● 執行中。從伺服器的程式跑起來的那一刻起就算執行中,哪怕它還在載入世界和模組。
● 运行中,後面是伺服器已經執行的時間(時:分:秒)。- 按鈕變成了停止。
- 兩端帶橫線的灰色行是 lip 自己寫的,不是伺服器的輸出。
- 輸入列出現,焦點移到這裡。
lip 的頂部一行也會顯示 ● 运行中,側邊欄的「伺服器」後面多了一個 ●。你可以去別的頁面,伺服器會繼續執行。
伺服器在輸出裡寫出 Server started. 時,玩家就可以進入了。
INFO
如果伺服器根本啟動不了(比如缺少遊戲檔案),lip 會顯示出錯對話方塊,狀態保持「未執行」。參見出錯的時候。
正在停止
讓伺服器停止之後,在它真正結束之前,狀態是 ● 正在停止。伺服器通常需要幾秒鐘儲存世界。
- lip 已請伺服器停止,正在等它結束。
- lip 向伺服器傳送了
stop命令。
這期間「停止」按鈕是灰色的:再按一次也不會有更多效果。
已結束,帶結束代碼
伺服器結束後,狀態是 ○ 已退出,退出码加一個數字。結束代碼 0 表示正常結束,其他數字表示出了問題。
- 伺服器已不在執行。
- 啟動可以再次啟動它。
- 輸出會保留,可以檢視伺服器為什麼結束。
正在重新啟動
如果伺服器以非 0 的結束代碼結束,不是你讓它停的,並且自動重新啟動已開啟,lip 會在 5 秒後重新啟動它。這期間狀態是 ● 正在重启,後面是伺服器結束時的結束代碼。
- lip 等待片刻,然後重新啟動伺服器。
- 伺服器是怎樣結束的。
- 自動重新啟動已開啟。
在 lip 等待期間按 Ctrl+C 或停止,伺服器就不會被重新啟動。
在此介面之外執行
伺服器也可以在另一個終端機裡用普通的 lip run 命令啟動。這時 lip 只知道伺服器在執行,別的一概不知。
- 伺服器在執行,但不是這個介面啟動的。
- 啟動在這裡不起作用,也沒有「停止」。
- 請到啟動它的地方去停止它。
這裡沒有輸出區,也沒有輸入列,因為它們屬於啟動伺服器的那個終端機。其他和「伺服器正在執行」有關的規則照樣生效:在它停止之前不能改動模組。
啟動和停止
要啟動伺服器,在啟動上按 Enter。首頁的第 3 步做的是同一件事。
要停止伺服器,有兩種辦法:
- 在伺服器頁面的任何位置按
Ctrl+C;或者 - 按
Tab直到停止高亮,再按Enter。
兩者都是向伺服器傳送 stop 命令,讓它儲存世界後自己結束。lip 從不強行殺掉伺服器。
WARNING
在其他頁面上,Ctrl+C 是詢問是否結束 lip。只有在伺服器頁面上、並且伺服器正在執行時,它才是停止伺服器。
檢視輸出
焦點在輸入列時,輸出區會跟著伺服器走:新的內容出現在底部。
想往回看,在輸入列按 Esc。焦點移到輸出區,它的標題變成亮色。
- 焦點在輸出區。
▲和▼表示上方和下方還有內容。- 用來捲動的按鍵。
| 按鍵 | 作用 |
|---|---|
↑ ↓ | 捲動一行。 |
PgUp PgDn | 捲動一屏。 |
Home | 跳到第一行。 |
End | 回到最後一行。 |
往回看的時候,即使伺服器又輸出了新內容,你正在看的那些行也不會移動。
要回到輸入列,按 End 再按 ↓,或者按 Tab。
向伺服器傳送命令
在輸入列輸入伺服器的命令,按 Enter 傳送。空輸入列裡灰色的 list 只是示例,不會被傳送。
伺服器的回應會出現在輸出區。
lip 會記住你傳送過的內容。在輸入列按 ↑ 調出上一條,按 ↓ 往後翻。正在輸入的內容不會丟:按 ↓ 翻過最後一條時,它會回來。
這裡輸入的是 Minecraft 伺服器的命令,比如 list 或 say,不是 lip 的命令。
離開輸入列
焦點在輸入列時,你輸入的字母都會發給伺服器,所以要靠 Esc 離開:
- 按
Esc,從輸入列到輸出區。 - 再按
Esc,到側邊欄。
Tab 也能離開輸入列,直接到側邊欄。
自動重新啟動
自動重新啟動決定伺服器當機後 lip 是否重新啟動它。按 → 從按鈕移到這個選項,它右邊會出現一句說明。按 Space 切換。
選項開啟時:
- 伺服器以非
0的結束代碼結束,5 秒後會被重新啟動。 - 你主動停止的伺服器,或者以結束代碼
0結束的伺服器,不會被重新啟動。 - 10 分鐘內重新啟動滿 5 次之後,lip 不再重新啟動,並在輸出區裡說明。這時請往上翻看輸出,找出伺服器反覆失敗的原因。
這個選項屬於工作區,所以每個伺服器各有各的設定。設定頁面上顯示的是同一個選項。
伺服器執行時結束
伺服器執行時結束 lip,詢問裡會說明伺服器會怎樣。
通常伺服器會繼續執行。lip 把伺服器交給自己的背景程式(常駐程式)來執行,介面關閉後它還在。你可以關掉終端機。想回來時,在同一個資料夾開啟終端機並執行 lip:伺服器頁面會顯示這個伺服器和它最近的輸出,你可以像之前一樣輸入命令、停止它。
只有一種少見的情況例外:lip 用不了常駐程式、一切都由它自己執行時,詢問裡寫的是另一句話:
這時如果選結束,lip 會請每個執行中的伺服器停止,在它們結束的過程中顯示伺服器頁面,等全部結束後再結束。
託管伺服器
在這個頁面上啟動的伺服器是託管伺服器:它由 lip 的常駐程式執行,不屬於任何一個終端機。所以結束 lip 後它還在執行,多個終端機可以同時看到同一個伺服器,每個工作區也可以同時各執行一個伺服器。lip run --managed 命令啟動和顯示的是同一批伺服器。用命令執行伺服器對此有詳細說明,也講了不用介面時如何停止它。