服務管理
查看伺服器在背景跑的每一個服務,關掉其中一個,或者立刻跑一次某個工作。
概覽
媒體伺服器大部分的工作都發生在沒人看的時候:更新 RSS、對帳媒體庫、投遞通知、應付外部播放器。設定 › 服務把這些全部放在同一頁上——什麼在跑、上次什麼時候跑的、跑了多久、出了什麼錯。
列出哪些東西
| 類型 | 例子 |
|---|---|
| API | Infuse、VLC、Kodi、mpv 用的 Jellyfin 相容層。 |
| Worker | 排程器的定時工作——RSS 更新、下載同步、媒體庫對帳、通知投遞、播出提醒、每日摘要、AniDB 對應更新、觀看同步系列工作、通知清理。 |
| Daemon | 下載器、轉碼快取、觀看同步、偏好備份。 |
| Bot | Telegram 與 Discord 機器人。 |
每一列都帶有它的排程、是否啟用、此刻是否在跑、上次執行的時間與耗時、那次執行的錯誤(如果有),以及下次何時到期。
關掉一個服務
大部分服務都有開關。停用的 worker 不再被排程;停用的 bot 會斷線;停用的 Jellyfin 層對所有路由回 503 並停掉區域網路探索回應器,外部播放器就不會再在網路上找到這台伺服器。
下載同步和通知投遞不能關閉——少了它們伺服器的狀態就不再自洽。
立刻跑一次
任何 worker 都可以立刻執行,不必等下一個 tick——這是驗證改動最快的辦法:存一條 RSS 規則,跑一次 RSS 更新,看它比對到什麼。已經在跑的工作不會被重複啟動。
這一頁是即時的:服務的啟動、結束與開關都會透過 WebSocket 推給所有連線的客戶端,所以在 Mac App 裡觸發的工作,在瀏覽器裡也會顯示為執行中。
工作失敗時
失敗的一次執行會把錯誤記在服務上,並觸發一則 system.service_failed 通知;該通知有限流,所以每分鐘都失敗的工作不會淹掉通知中心。想在離開伺服器時也收到,就在設定 › 通知裡把這個事件路由到 Telegram 或 Discord。
外部播放器
Jellyfin 區塊會列出已登入的裝置——客戶端名稱、裝置名稱、首次出現與最後活動時間。撤銷其中一台只會讓那台裝置的 token 失效,其他工作階段照常可用,因為 token 現在會記錄它是發給哪一台裝置的。
API
GET /api/v1/system/services 列出以上全部內容,PATCH /api/v1/system/services/{id} 啟用或停用其中一個,POST /api/v1/system/services/{id}/run 觸發一次工作。裝置在 /api/v1/system/services/jellyfin/devices。見 API 參考。