標籤:tomat get 控制 通過 .gz rup emc tps mct
首先瞭解以下運行層級對應工具的變化曆史:
1、Ubuntu 6.10及以前版本使用Sysvinit。
2、Ubuntu 14.10及以前版本使用Upstart但是還留著Sysvinit並存。
https://wiki.ubuntu.com/Upstart
https://help.ubuntu.com/community/UpstartHowto
3、Ubuntu 15.04開始預設使用Systemd,但是可以在開機選項選擇使用Systemd或Upstart,但是不可同時使用Sysvinit或Upstart並存。
https://wiki.ubuntu.com/SystemdForUpstartUsers
下面是分析:
從11.04版起,我想。MySQL由Upstart進行處理,而Apache仍然使用傳統的Sysvinit指令碼。
對於MySQL,可以使用Upstart中的新的覆蓋功能來修改啟動行為:
echo "manual" | sudo tee /etc/init/mysql.override
有關更多資訊,請參閱Upstart Cookbook中的“ 禁止自動啟動作業 ” 一節。
而在16.04版本上,由於使用了Systemd進行接管,以上指令碼無法使用,那麼需要使用以下指令碼來禁止才能通過:
#禁止啟動
sudo systemctl disable mysql
#開機啟動
sudo systemctl enable mysql
所以,我猜測,MySQL現在整體由Systemd進行處理,但是這僅限於以APT源和deb檔案安裝的版本,而對於以二進位包(tar.gz壓縮包)安裝的版本,然仍使用Sysvinit指令碼進行控制。
對於Systemd來說,服務在運行層級上簡化很多,不用關心運行在哪個運行層級上。預設已經幫你配置好。
對於Apache的分析:
由於Apache仍然使用傳統的Sysvinit指令碼,可以使用它
sudo update-rc.d -f apache2 remove
從中刪除連結/etc/rcX.d或替代使用
sudo update-rc.d apache2 disable
它通過將指令碼從起始指令碼更改為停止指令碼來“禁用”指令碼。這是可逆的
sudo update-rc.d apache2 enable
而對於Sysvinit指令碼的操作,對應的工具就是sysv-rc-conf。
參考:
https://askubuntu.com/questions/40072/how-to-stop-apache2-mysql-from-starting-automatically-as-computer-starts
https://askubuntu.com/questions/833094/how-can-i-disable-autostart-of-mysql-server
https://askubuntu.com/questions/57381/how-to-stop-mysql-from-running-at-boot-time
https://askubuntu.com/questions/40072/how-to-stop-apache2-mysql-from-starting-automatically-as-computer-starts/40077#40077
Ubuntu 16.04下MySQL 5.7.18取消開機啟動(解決無法使用Sysvinit(update-rc.d/sysv-rc-conf)指令碼關閉)