開機自動啟動與以服務執行

一台遠端機器只有在你需要時它的代理正在執行,才算有用——而這通常意味著:停電之後、更新之後,或者你 不在場的那次重開機之後。每個平台的解法都不一樣。

有三個詞經常被混用,所以先說清楚:

  • 已安裝 —— 檔案在磁碟上。
  • 已啟用 —— 下一次會自己啟動。
  • 正在執行 —— 此刻正在提供檔案。

代理可以既已安裝又已啟用,卻並沒有在執行。這正是「為什麼我的裝置離線」最常見的答案。

Windows

安裝程式提供登入時啟動 Filemote,預設不勾選。勾選它會為你的 Windows 使用者新增一筆啟動項目,在 登入時啟動 Filemote 應用程式;如果應用程式被設定為啟動代理,代理隨後就會自行啟動。

需要知道的後果:

  • 它是按使用者的。只要沒有人登入,就沒有任何人的代理在執行。
  • 一台重開機後停在登入畫面的機器,在有人登入之前都是離線的。
  • 可攜版與 ClickOnce 版根本不會新增啟動項目。

如果你需要一台無人登入也能提供檔案的 Windows 機器,誠實的回答是:Windows 版並不是為此設計的——請改 用 Linux 主機,或者讓機器保持登入狀態並鎖定螢幕。

Linux —— systemd 單元

安裝指令碼會建立 filemote-agent 單元,並且只啟用、不啟動它。這個組合是刻意的:啟用讓它撐過 重開機,而保持停止則讓全新安裝不會以半設定狀態跑起來。

sudo systemctl start filemote-agent      # 立即啟動
sudo systemctl status filemote-agent     # 是否在執行
sudo systemctl stop filemote-agent       # 停止
sudo systemctl disable filemote-agent    # 讓它重開機後不再自動起來
sudo systemctl enable filemote-agent     # 撤銷上一條

該單元以你的使用者身分執行而非 root,失敗五秒後重新啟動,記憶體上限 8 GB、CPU 上限 80%,記錄 寫入 journald。

用 --no-autostart 安裝會完全略過這個單元;那時由你自己執行 FilemoteAgent,或者自己寫一個單元。

macOS —— launchd 代理

安裝指令碼會寫入 ~/Library/LaunchAgents/com.filemote.agent.plist 並載入它,於是代理在每次登入時 啟動,當機後也會自行重新啟動。

launchctl start com.filemote.agent
launchctl stop  com.filemote.agent
launchctl list | grep com.filemote.agent    # 是否已載入

與 Windows 一樣,這也是按登入的:停在登入視窗的 Mac 什麼都不會提供。--no-autostart 會略過 plist,那麼這兩條指令都不適用。

驗證它確實能撐過重開機

不要相信設定——實測一次:

  1. 重新開機。
  2. 在 Windows 與 macOS 上登入。
  3. 到網站上檢視裝置清單。

回來了就完事。沒回來,就依 裝置顯示為離線逐項排查——它的第一項就能抓住 大多數情況。

之後如何關閉自動啟動

  • Windows —— 重新執行安裝程式取消勾選,或者刪除你使用者底下的那筆啟動項目。
  • Linux —— sudo systemctl disable filemote-agent。
  • macOS —— launchctl unload ~/Library/LaunchAgents/com.filemote.agent.plist,然後刪除該 檔案。

以上都不會解除安裝任何東西,也不會動到你的設定;它們只是讓代理不再自己起來。徹底移除請見 移除 Filemote。

更新於 2026-08-06

沒有解決 —— 聯絡支援團隊