CentOS 設定開機自啟動服務的兩種方法

2021-08-26 17:48:48 字數 2935 閱讀 4913

在centos或者redhat其他系統下,如果是後面安裝的服務,如httpd、mysqld、postfix等,安裝後系統預設不會自動啟動的。

就算手動執行 /etc/init.d/mysqld start 啟動了服務,只要伺服器重啟後,系統仍然不會自動啟動服務。 在這個時候,我們就需要在安裝後做個設定,讓系統自動啟動這些服務,避免不必要的損失和麻煩。

centos 7.5

在centos中總共有7種執行級別,可以在/etc/inittab 檔案中進行設定,7種執行級別對應著 /etc/rc.d/rc[0-6].d 這七個目錄

ps: 你可能也發現了在/etc下也有同樣的7個資料夾即 /etc/rc[0-6].d ,通過檢視發現/etc/rc[0-6].d其實就是/etc/rc.d/rc[0-6].d的軟連線,只是為了保持和unix的相容性

這7個目錄對應著7種不同執行級別,也就是說在每乙個目錄下的內容表示在該執行級別下應該啟動或者關閉的服務。例如我們看一下/etc/rc.d/rc5.d目錄下的內容

當然你可能也發現了,這些檔案是按照如下格式命名的 [ks][1-100]servicename ,它表示當系統的執行級別為5時,它會關掉以k開頭的所有服務,並啟動所有以s開頭的服務,其實,這些服務都是/etc/init.d/中某個服務的軟連線,所以真正啟動的服務是/etc/init.d目錄中的某乙個服務,而以k/s開頭建立軟連線是為了表明在對應級別下應該採取的行為,k/s後面緊跟的數字表示開/關服務的優先順序。

因此,如果我們自己寫了乙個指令碼** 如cleanupd,需要在開機級別為3的時候自啟動的話,那麼我們只需要把可執行的cleanupd指令碼檔案放到 /etc/init.d目錄下,並在對應的執行級別目錄下 如/etc/rc.d/rc3.d/ 建立乙個以s開頭後加數字的軟連線到/etc/init.d/cleanupd即可,如

[root@localhost ~]# ln -s /etc/init.d/cleanupd /etc/rc.d/rc3.d/s95cleanup
顯然,這樣的設定方式比較繁瑣,僅僅適合於我們想diy的指令碼服務。

鑑於上面的手工操作比較繁瑣,在centos中專門提供了chkconfig 命令來設定或者取消開機自啟動服務。如,查詢所有開機啟動的服務:

使用chkconfig 或者 chkconfig –list就可以看出當前系統已經設定的各個服務在各個執行級別下的開閉狀態。如果我們想設定某個服務自啟動或者關閉的話,那麼只需要按照下面的格式使用即可

chkconfig servicename on/off
如:

檢視 sshd

將 sshd 設定為開機自啟動:

[root@host ~]# chkconfig sshd on
取消 sshd 的開機自啟動,只需要將on改為off即可:

[root@host ~]# chkconfig sshd off
3.值得注意的是,如果這個服務尚未被新增到 chkconfig 列表中,則現需要使用 –-add 引數將其新增進去:

[root@host ~]# chkconfig --add sshd
4.如果要查詢當前所有自動啟動的服務,可以輸入:

[root@host ~]# chkconfig --list
5.如果只想看指定的服務,只需要在 「–-list」 之後加上服務名就好了,比如檢視httpd服務是否為自動啟動:

此時0~6均為off,則說明httpd服務不會在系統啟動的時候自動啟動。我們輸入:

[root@host ~]# chkconfig httpd on
則此時為:

這個時候2~5都是on,就表明會自動啟動了。

例如將 apache、mysql、samba、svn 等這些服務的開機自啟動問題一起搞定:

vi/etc/rc.d/rc.local

新增以下命令
/usr/sbin/apachectlstart

/etc/rc.d/init.d/mysqldstart

/etc/rc.d/init.d/smbstart

/usr/local/subversion/bin/svnserve-d

設定redis服務開機自啟動

今天周一,一大早來公司開完會,就聽到開發的同學說本地專案起不來了,叫我查下原因。想了下,他們本地專案只跟我們公司的一台內網伺服器有關,那台伺服器他們要用到的呢,也就只有mysql和redis這兩個服務,於是就去查了下這兩個服務的狀態。mysql是啟動狀態的,redis是關閉的,想起來了,週末園區說會...

centos設定開機自啟動指令碼

以前直接在 etc rc.local中寫入命令可執行,現在發現不起作用。mount中內容 bin bash chkconfig 2345 80 90 description mount mount t cifs o username administrator password uid 1002,g...

centos下設定apache開機自啟動

第一步 cp usr local apache bin apachectl etc rc.d init.d httpd 如果有其他的版本的apache存在,也可以直接覆蓋掉 第二步 使用編輯器開啟httpd檔案,並在第一行 bin sh下增加兩行文字如下 chkconfig 35 70 30 des...