Linux中設定服務自啟動的三種方式

2021-08-03 01:41:59 字數 3048 閱讀 8758

有時候我們需要linux系統在開機的時候自動載入某些指令碼或系統服務

主要用三種方式進行這一操作: 

ln -s 在/etc/rc.d/rc*.d目錄中建立/etc/init.d/服務的軟鏈結(*代表0~6七個執行級別之一) 

chkonfig 命令列執行級別設定 

ntsysv 偽圖形執行級別設定

注意: 

1.這三種方式主要用於以redhat為基礎的發行版 

2.如果還不知道執行級別是什麼,那麼最好先看看相關資料再實驗

第一種方式:ln -s 建立啟動軟連線

在linux中有7種執行級別(可在/etc/inittab檔案設定),每種執行級別分別對應著/etc/rc.d/rc[0~6].d這7個目錄

tips:/etc/rc[0~6].d其實是/etc/rc.d/rc[0~6].d的軟連線,主要是為了保持和unix的相容性才做此策。

這7個目錄中,每個目錄分別存放著對應執行級別載入時需要關閉或啟動的服務,由詳細資訊可以知道,其實每個指令碼檔案都對應著/etc/init.d/目錄下具體的服務,k開頭(close)的指令碼檔案代表執行級別載入時需要關閉的,s(start)開頭的代表需要執行。

因此,當我們需要開機啟動自己的指令碼時,只需要: 

1.將可執行指令碼丟在/etc/init.d目錄下; 

2.在/etc/rc.d/rc*.d中建立軟鏈結即可。

[root@redhat1 ~]# ll /etc/init.d/named 

-rwxr-xr-x. 1 root root 0

11月 918:

32 /etc/init.d/named

[root@redhat1 ~]# ll /etc/rc3.d/|grep named

lrwxrwxrwx. 1 root root 17

11月 918:

27s87named -> /etc/init.d/named

[root@redhat1 ~]#

此處named是具體服務的指令碼檔案,s87named是其軟鏈結,s開頭代表載入時自啟動,如果需要在多個執行級別下設定自啟動,則需建立多個軟鏈結。這種方式比較繁瑣,適用於自定義的服務指令碼。

如果系統中已經存在某些服務(比如安裝apache時就會有httpd服務項),可以使用下面的兩種方式

第二種方式:chkconfig

如果需要自啟動某些服務,只需使用chkconfig 服務名 on即可,若想關閉,將on改為off

在預設情況下,chkconfig會自啟動2345這四個級別,如果想自定義可以加上–level選項

[root@redhat1 ~]# chkconfig sshd 

[root@redhat1 ~]# chkconfig --list sshd

sshd 0:關閉 1:關閉 2:啟用 3:啟用 4:啟用 5:啟用 6:關閉

[root@redhat1 ~]# ll /etc/rc3.d/|grep sshd

lrwxrwxrwx. 1 root root 14

11月 8

21:46 s55sshd-> ../init.d/sshd

[root@redhat1 ~]# ll /etc/rc2.d/|grep sshd

lrwxrwxrwx. 1 root root 14

11月 8

21:46 s55sshd-> ../init.d/sshd

[root@redhat1 ~]# rm /etc/rc2.d/s55sshd

rm:是否刪除符號鏈結 "/etc/rc2.d/s55sshd"?y

[root@redhat1 ~]# ll /etc/rc2.d/|grep sshd

[root@redhat1 ~]# chkconfig --list sshd

sshd 0:關閉 1:關閉 2:關閉 3:啟用 4:啟用 5:啟用 6:關閉

[root@redhat1 ~]# chkconfig sshd on

[root@redhat1 ~]# chkconfig --list sshd

sshd 0:關閉 1:關閉 2:啟用 3:啟用 4:啟用 5:啟用 6:關閉

[root@redhat1 ~]#

tips:–list選項可檢視指定服務的啟動狀態,chkconfig不帶任何選項則檢視所有服務狀態。

第三種方式:ntsysv 偽圖形

ntsysv和chkconfig其實是一樣的,只不過加上了圖形而已

啟動ntsysv有兩種方式,一是直接在命令列中輸入ntsysv,二是使用setup命令,然後選擇系統服務 

預設情況下,當前執行級別為多少,在ntsysv中設定的啟動服務的級別便是多少 

比如,我當前的執行級別是3,那麼我在偽圖形介面中選擇啟動服務後,它的執行級別也會是3

如果想自定義執行級別可使用ntsysv –level方式

以上三種操作需要保證服務指令碼檔案可執行,並且要有root許可權

其中,第一種方式多用於自定義指令碼,第

二、三種多用於系統已存在的服務,比如ftp、samba、ssh、httpd等等,並且,要做相關設定需要弄清楚執行級別的問題

tips:如果想手動啟動某服務,傳統的方式是 /etc/init.d 服務名 start 

實際上還可以這樣,service 服務名 start 

Linux中如何設定服務自啟動?

有時候我們需要linux系統在開機的時候自動載入某些指令碼或系統服務,主要用三種方式進行這一操作 ln s 在 etc rc.d rc d目錄中建立 etc init.d 服務的軟鏈結 代表0 6七個執行級別之一 chkonfig 命令列執行級別設定 ntsysv 偽圖形執行級別設定 注意 這三種方...

Linux中設定服務自啟動的三種方式

有時候我們需要linux系統在開機的時候自動載入某些指令碼或系統服務 主要用三種方式進行這一操作 ln s 在 etc rc.d rc d目錄中建立 etc init.d 服務的軟鏈結 代表0 6七個執行級別之一 chkonfig 命令列執行級別設定 ntsysv 偽圖形執行級別設定 注意 1.這三...

Linux中設定服務自啟動的三種方式

有時候我們需要linux系統在開機的時候自動載入某些指令碼或系統服務 主要用三種方式進行這一操作 ln s 在 etc rc.d rc d目錄中建立 etc init.d 服務的軟鏈結 代表0 6七個執行級別之一 chkonfig 命令列執行級別設定 ntsysv 偽圖形執行級別設定 注意 1.這三...