Linux 系統開機啓動項清理

大部分 Linux 發行版都會在開機的時候啓動各類相關的服務進程,其中有不少你根本都用不上的:藍牙、 Avahi 、調製解調管理器甚至 pppd-dns 等等,你甚至根本不知道這些都是什麼東西。shell

好在咱們有 Systemd ,它給咱們帶來了許多工具幫咱們查看系統啓動是的情況,固然也可讓咱們控制系統啓動時候的運行選項。我將會爲你詳細解讀關閉某些無用進程的方法,前提是在 Systemd 類發行版。ubuntu

查看開機啓動項

一般狀況下,你能用 /etc/init.d 查看系統引導時啓動的服務項。可是 systemd 會用不同的展示方式,下面是一些命令,用於展現開機啓動時的進程項。安全

你能夠看到,這裏頭有一項是藍牙,我不須要使用它,那麼我應該怎樣關閉並阻止它在開機時後啓動?網絡

完成上面的操做以後,用下面的命令來肯定本身是否成功。併發

這裏的停用並不完全,由於其餘的服務進程仍舊能夠將它喚起。若是要徹底阻止開機啓動的話,卸載不是個好方法,像下面這樣把它掩蓋起來就能夠了:app

我建議在持續使用一段時間並無形成任何負面影響以後再選擇卸載。ide

經過執行命令能夠得到以下服務列表:工具

有一點須要注意:靜態服務的啓動和禁用狀態沒法改變,由於靜態服務被其餘的進程所依賴,而這個情況下並非它們本身運行。oop

哪些服務可以禁止?

如何知道你須要哪些服務,而哪些又是能夠安全地禁用的呢?它老是依賴於你的個性化需求。google

這裏舉例了幾個服務進程的做用。許多服務進程都是發行版特定的,因此你應該看看你的發行版文檔(好比經過 google 或 StackOverflow)。

  • accounts-daemon.service 是一個潛在的安全風險。它是 AccountsService 的一部分,AccountsService 容許程序得到或操做用戶帳戶信息。我不認爲有好的理由能使我容許這樣的後臺操做,因此我選擇掩蓋mask該服務進程。

  • avahi-daemon.service 用於零配置網絡發現,使電腦超容易發現網絡中打印機或其餘的主機,我老是禁用它,別漏掉它。

  • brltty.service 提供布萊葉盲文設備支持,例如布萊葉盲文顯示器。

  • debug-shell.service 開放了一個巨大的安全漏洞(該服務提供了一個無密碼的 root shell ,用於幫助 調試 systemd 問題),除非你正在使用該服務,不然永遠不要啓動服務。

  • ModemManager.service 該服務是一個被 dbus 激活的守護進程,用於提供移動寬頻broadband(2G/3G/4G)接口,若是你沒有該接口,不管是內置接口,仍是經過如藍牙配對的電話,以及 USB 適配器,那麼你也無需該服務。

  • pppd-dns.service 是一個計算機發展的遺物,若是你使用撥號接入互聯網的話,保留它,不然你不須要它。

  • rtkit-daemon.service 聽起來很可怕,聽起來像是 rootkit。 可是你須要該服務,由於它是一個實時內核調度器real-time kernel scheduler

  • whoopsie.service 是 Ubuntu 錯誤報告服務。它用於收集 Ubuntu 系統崩潰報告,併發送報告到 daisy.ubuntu.com 。 你能夠放心地禁止其啓動,或者永久的卸載它。

  • wpa_supplicant.service 僅在你使用 Wi-Fi 鏈接時須要。

系統啓動時發生了什麼?

Systemd 還有另外命令一些幫助咱們調試開機啓動時出現的問題。使用這一命令能夠重現系統啓動時候的全部消息。

輸入 journalctl -b -1 命令能夠重現你上一次啓動時候的信息,journalctl -b -2 能夠重現倒數第 2 次啓動,以此類推。

這個命令會把全部信息都給打印出來,這可能會形成必定干擾,由於有時候徹底無需關注全部信息,只須要查看重點部分就能夠了。因此,咱們可使用過濾器功能來快速發現目標。咱們試着以進程 1 爲例來演示一下。

從這些消息裏咱們判斷出正在或者即將啓動的進程。

一個最有用的命令工具之一 systemd-analyze blame,這個命令能夠顯示進程耗時,幫助咱們發現耗時最長的進程。

這個特定的例子沒有出現任何異常,可是若是存在系統啓動瓶頸,則該命令將能發現它。

相關文章
相關標籤/搜索