Ubuntu 區分系統原生服務與使用者自定義服務

最簡單的方式是透過檔案存放的路徑來過濾。

透過路徑過濾 (最準確)

系統內建的服務通常放在 /lib/systemd/system/,而使用者自定義或第三方軟體安裝的服務則放在 /etc/systemd/system/。你可以執行以下指令列出這些非系統預設的服務:

ls /etc/systemd/system/*.service

如果你想看到這些服務目前的執行狀態,可以結合 systemctl 指令:

systemctl list-units –type=service –all | grep -Ff <(ls /etc/systemd/system/*.service | xargs -n 1 basename)


使用 systemctl 指令篩選

如果你想查看所有「已啟用」(Enabled) 且非預設狀態的服務,可以使用:

systemctl list-unit-files –type=service –state=enabled

這個列表雖然包含了一些系統啟用的服務,但大部分你手動設定或第三方套件(如 Nginx, Docker, MySQL)安裝的服務都會出現在這裡。


過濾掉系統關鍵路徑

另一種方式是列出所有載入的服務,但排除掉存放在系統目錄 (/lib/…) 的部分:

systemctl list-units –type=service –no-pager | grep -v “/lib/systemd/system”

檢查服務內容

當你找到非系統服務後,建議檢查其檔案內容來確認它執行的指令與路徑,這對搬移伺服器非常有幫助:

cat /etc/systemd/system/你的服務名稱.service

通常你會在內容中看到 ExecStart,這會告訴你該服務實際上是執行哪一個程式或腳本。

需要我幫你寫一個指令,直接列出這些自定義服務指向的程式路徑嗎?

About the author

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *