如何防止Linux服務自啟動?

如何防止Linux服務自啟動?

我最近從 Windows 遷移到 Linux (xubuntu)

我是一名開發人員,已經安裝了我需要的一切,LAMP。在 Windows 中,我曾經關閉所有不必要的服務 - 我不需要 Apache 或 MySQL 服務一直運行。每當我需要 MySQL 時,我都會使用:

net start mysql

我如何在 Linux 中做同樣的事情?

  1. 停用不需要的守護程式自動啟動?
  2. 僅在我需要時才啟動它們?

答案1

在大多數 Linux 發行版中,您可以透過(以 root 身分或使用 sudo)執行以下命令來手動啟動/停止服務:

# /etc/init.d/apache2 start
# /etc/init.d/mysqld start

# /etc/init.d/apache2 stop
# /etc/init.d/mysqld stop

自動啟動哪些服務由 /etc/rc[runlevel].d/ 中的檔案連結控制。以 root 身份使用命令“runlevel”查找當前的運行級別

# runlevel
N 2

這裡表示運行等級 2 現在您只需刪除 /etc/rc2.d/ 中您不想啟動的那些檔案。

刪除桌面上的 apache 和 Mysql 通常是可以的,但要注意刪除其他服務。

答案2

對於使用 systemd(15.04 及更高版本)的 Ubuntu 版本,請使用:

systemctl disable service

這樣就可以完成工作了。它將禁用該服務,並且重新啟動後不會重新啟動。暫時啟用簡單開始服務。不是使能夠

若要尋找服務名稱,請使用

service --status-all

其他指令有:

systemctl start service- 用它來啟動服務。重啟後不再存在

systemctl stop service- 用它來停止服務。重啟後不再存在

systemctl restart service- 用它來重新啟動服務

systemctl status service- 顯示服務的狀態。告知服務目前是否正在運作。

systemctl enable service- 在下次重新啟動或下次啟動事件時開啟服務。重啟後仍然存在。

systemctl disable service- 在下次重新啟動或下次停止事件時關閉服務。重啟後仍然存在。

答案3

Ubuntu 10.04 正處於兩個服務管理系統之間的過渡:SysVinit(大多數 Linux 發行版使用的傳統系統)和 Upstart(由 Ubuntu 推動的更新系統,並在越來越多的發行版中可用)。

SysVinit 服務管理腳本位於/etc/init.d.您可以使用 啟動服務/etc/init.d/SERVICENAME start並使用 停止服務/etc/init.d/SERVICENAME stop。服務是否在啟動時自動啟動取決於符號連結的存在,/etc/rc?.d其中的?數字是從25運行等級)。防止服務在啟動時自動啟動的最簡單方法是使用update-rc.d SERVICENAME disable.

Upstart 服務管理設定檔位於/etc/init.您可以使用 啟動服務start SERVICENAME並使用 停止服務stop SERVICENAME。設定檔/etc/init/SERVICENAME.conf包含一行指示何時啟動服務:start on …。禁用這些服務的簡單方法是將該行更改為start on never and (…)。如果您不想編輯該文件,您也可以透過將其重命名為不以.conf.

dpkg-divert --add --local --divert /etc/init/foo.conf.disabled --rename /etc/init/foo.conf

從 Ubuntu 10.04 開始,Apache 附帶了 SysVinit 腳本,Mysql 附帶了 Upstart 腳本。

相關內容