跳到正文
本頁目錄

伺服器

伺服器頁面就是伺服器的主控台。讀完這一頁,你就能啟動和停止伺服器、檢視它的輸出、向它傳送命令、讓它在當機後自動重新啟動,並且知道結束 lip 時伺服器會怎樣。

如果你還不熟悉按鍵和螢幕上的各個部分,請先讀介面導覽。

頁面的組成

伺服器執行期間的伺服器頁面。編號標出狀態行、輸出區和輸入列。

  1. 狀態行說明伺服器是否在執行。它下面是啟動或停止按鈕,以及自動重新啟動選項。
  2. 輸出區是伺服器輸出的內容。
  3. 輸入列用來輸入發給伺服器的命令。只有伺服器執行時才有這一行。

Tab 依次在各部分之間移動:按鈕和選項、輸出區、輸入列。

伺服器的每種狀態

狀態行顯示的總是下面幾種之一。

這裡還沒有伺服器

沒有遊戲的資料夾裡沒有東西可執行。頁面只有一個按鈕。

空資料夾的伺服器頁面。寫著「這裡還沒有伺服器。」,有一個「建立伺服器…」按鈕。

按 Enter 建立伺服器。這會啟動工作區頁面的建立伺服器嚮導。

未執行

○ 未运行表示伺服器沒有執行,並且自 lip 啟動以來沒有執行過。輸出區是空的。

未執行的伺服器的伺服器頁面。「啟動」按鈕處於高亮,輸出區寫著「還沒有輸出。」

在啟動上按 Enter 啟動伺服器。

執行中

按下「啟動」後,在伺服器的程式真正跑起來之前,狀態是 ● 正在啟動。通常只是一瞬間。lip 第一次需要為伺服器準備系統時會久一些,例如 Windows 上的 Visual C++ 執行庫,或者 Linux 和 macOS 上的 Wine。如果這一步失敗,lip 會顯示失敗原因,狀態回到 ○ 未執行。

之後狀態變成 ● 執行中。從伺服器的程式跑起來的那一刻起就算執行中,哪怕它還在載入世界和模組。

剛按下「啟動」的伺服器頁面。狀態是「執行中 · 00:00:01」,按鈕變成「停止」,輸出區有一行灰色文字,輸入列出現了。

  1. ● 运行中,後面是伺服器已經執行的時間(時:分:秒)。
  2. 按鈕變成了停止。
  3. 兩端帶橫線的灰色行是 lip 自己寫的,不是伺服器的輸出。
  4. 輸入列出現,焦點移到這裡。

lip 的頂部一行也會顯示 ● 运行中,側邊欄的「伺服器」後面多了一個 ●。你可以去別的頁面,伺服器會繼續執行。

伺服器在輸出裡寫出 Server started. 時,玩家就可以進入了。

INFO

如果伺服器根本啟動不了(比如缺少遊戲檔案),lip 會顯示出錯對話方塊,狀態保持「未執行」。參見出錯的時候。

正在停止

讓伺服器停止之後,在它真正結束之前,狀態是 ● 正在停止。伺服器通常需要幾秒鐘儲存世界。

按下 Ctrl+C 之後的伺服器頁面。狀態是「正在停止」,輸出區有一行灰色的「asking the server to stop」。

  1. lip 已請伺服器停止,正在等它結束。
  2. lip 向伺服器傳送了 stop 命令。

這期間「停止」按鈕是灰色的:再按一次也不會有更多效果。

已結束,帶結束代碼

伺服器結束後,狀態是 ○ 已退出,退出码加一個數字。結束代碼 0 表示正常結束,其他數字表示出了問題。

已結束的伺服器的伺服器頁面。狀態是「已結束,結束代碼 0」,按鈕又變回「啟動」,輸出還在。

  1. 伺服器已不在執行。
  2. 啟動可以再次啟動它。
  3. 輸出會保留,可以檢視伺服器為什麼結束。

正在重新啟動

如果伺服器以非 0 的結束代碼結束,不是你讓它停的,並且自動重新啟動已開啟,lip 會在 5 秒後重新啟動它。這期間狀態是 ● 正在重启,後面是伺服器結束時的結束代碼。

當機之後的伺服器頁面。狀態是「正在重新啟動 · 已結束,結束代碼 -1073741819」,自動重新啟動已勾選,lip 用一行黃色文字說明 5 秒後重新啟動伺服器。

  1. lip 等待片刻,然後重新啟動伺服器。
  2. 伺服器是怎樣結束的。
  3. 自動重新啟動已開啟。

在 lip 等待期間按 Ctrl+C 或停止,伺服器就不會被重新啟動。

在此介面之外執行

伺服器也可以在另一個終端機裡用普通的 lip run 命令啟動。這時 lip 只知道伺服器在執行,別的一概不知。

伺服器頁面寫著「在此介面之外執行」。按鈕下方有一行「它由另一個 lip run 啟動,請在那裡停止。」

  1. 伺服器在執行,但不是這個介面啟動的。
  2. 啟動在這裡不起作用,也沒有「停止」。
  3. 請到啟動它的地方去停止它。

這裡沒有輸出區,也沒有輸入列,因為它們屬於啟動伺服器的那個終端機。其他和「伺服器正在執行」有關的規則照樣生效:在它停止之前不能改動模組。

啟動和停止

要啟動伺服器,在啟動上按 Enter。首頁的第 3 步做的是同一件事。

要停止伺服器,有兩種辦法:

  • 在伺服器頁面的任何位置按 Ctrl+C;或者
  • 按 Tab 直到停止高亮,再按 Enter。

兩者都是向伺服器傳送 stop 命令,讓它儲存世界後自己結束。lip 從不強行殺掉伺服器。

WARNING

在其他頁面上,Ctrl+C 是詢問是否結束 lip。只有在伺服器頁面上、並且伺服器正在執行時,它才是停止伺服器。

檢視輸出

焦點在輸入列時,輸出區會跟著伺服器走:新的內容出現在底部。

想往回看,在輸入列按 Esc。焦點移到輸出區,它的標題變成亮色。

輸出區擁有焦點,並且已向上捲動。右邊緣的標記表示上下還有內容。

  1. 焦點在輸出區。
  2. ▲ 和 ▼ 表示上方和下方還有內容。
  3. 用來捲動的按鍵。
按鍵作用
↑ ↓捲動一行。
PgUp PgDn捲動一屏。
Home跳到第一行。
End回到最後一行。

往回看的時候,即使伺服器又輸出了新內容,你正在看的那些行也不會移動。

要回到輸入列,按 End 再按 ↓,或者按 Tab。

向伺服器傳送命令

在輸入列輸入伺服器的命令,按 Enter 傳送。空輸入列裡灰色的 list 只是示例,不會被傳送。

輸入列裡是「say Welcome to Survival」。

伺服器的回應會出現在輸出區。

lip 會記住你傳送過的內容。在輸入列按 ↑ 調出上一條,按 ↓ 往後翻。正在輸入的內容不會丟:按 ↓ 翻過最後一條時,它會回來。

輸入列顯示用上方向鍵調出的「list」。底部一行列出「↑↓ 歷史」。

這裡輸入的是 Minecraft 伺服器的命令,比如 list 或 say,不是 lip 的命令。

離開輸入列

焦點在輸入列時,你輸入的字母都會發給伺服器,所以要靠 Esc 離開:

  1. 按 Esc,從輸入列到輸出區。
  2. 再按 Esc,到側邊欄。

Tab 也能離開輸入列,直接到側邊欄。

自動重新啟動

自動重新啟動決定伺服器當機後 lip 是否重新啟動它。按 → 從按鈕移到這個選項,它右邊會出現一句說明。按 Space 切換。

「自動重新啟動」選項已勾選並處於高亮。右邊是一句「當機後重新啟動。」

選項開啟時:

  • 伺服器以非 0 的結束代碼結束,5 秒後會被重新啟動。
  • 你主動停止的伺服器,或者以結束代碼 0 結束的伺服器,不會被重新啟動。
  • 10 分鐘內重新啟動滿 5 次之後,lip 不再重新啟動,並在輸出區裡說明。這時請往上翻看輸出,找出伺服器反覆失敗的原因。

這個選項屬於工作區,所以每個伺服器各有各的設定。設定頁面上顯示的是同一個選項。

伺服器執行時結束

伺服器執行時結束 lip,詢問裡會說明伺服器會怎樣。

詢問「要結束 lip 嗎?」,第二行是「執行中的伺服器會繼續執行。」

通常伺服器會繼續執行。lip 把伺服器交給自己的背景程式(常駐程式)來執行,介面關閉後它還在。你可以關掉終端機。想回來時,在同一個資料夾開啟終端機並執行 lip:伺服器頁面會顯示這個伺服器和它最近的輸出,你可以像之前一樣輸入命令、停止它。

只有一種少見的情況例外:lip 用不了常駐程式、一切都由它自己執行時,詢問裡寫的是另一句話:

詢問「要結束 lip 嗎?」,第二行是「執行中的伺服器會先停止。」

這時如果選結束,lip 會請每個執行中的伺服器停止,在它們結束的過程中顯示伺服器頁面,等全部結束後再結束。

託管伺服器

在這個頁面上啟動的伺服器是託管伺服器:它由 lip 的常駐程式執行,不屬於任何一個終端機。所以結束 lip 後它還在執行,多個終端機可以同時看到同一個伺服器,每個工作區也可以同時各執行一個伺服器。lip run --managed 命令啟動和顯示的是同一批伺服器。用命令執行伺服器對此有詳細說明,也講了不用介面時如何停止它。