參考 ubuntu配置開機啟動服務

2022-08-29 03:03:10 字數 3291 閱讀 3168

在ubuntu10.04之前的版本都是使用chkconfig來進行管理,而在之後的版本就沒有了,如果想繼續使用chkconfig命令,只好自己apt-get install下了。

[plain]view plain

copy

sudo apt-get install chkconfig  

在這裡我給大家介紹另兩個命令來配置ubuntu的啟動服務,sysv-rc-conf和update-rc.d1、執行級別:

linux系統任何時候都執行在乙個指定的執行級上,並且不同的執行級程式和服務都不同,所要完成的工作和要達到的目的也不同,系統可以在這些執行級之間進行切換,來完成不同的工作。

執行級別等級:

在這裡需要注意的是,在debian下(ubuntu其中之一)level2~5是沒有任何區別的。

使用以下命令,可以檢視當前的執行級別:

[plain]view plain

copy

runlevel  

runlevel顯示上次的執行級別和當前的執行級別,「n」表示沒有上次的執行級別。

使用以下命令,可以切換執行級別:

[plain]view plain

copy

init [123456]  

例如,init 0表示關機,init 6表示重啟。

2、啟動步驟:

[plain]view plain

copy

sudo apt-get install sysv-rc-conf  

update-rc.d是乙個perl指令碼,是用來自動公升級system v型別初始化指令碼,簡單來說就是哪些東西是你想要在系統引導初始化的時候執行的,哪些是希望在關機或重啟時候停止的,都可以用它來幫你設定。這些指令碼的連線位於/etc/rcx.d/下(x代表0~6),對應指令碼位於/etc/init.d/下。

1、設定啟動項:

update-rc.d start

2、設定停止項:

update-rc.d stop

設定啟動和停止可以寫在一起,例如:

[plain]view plain

copy

sudo update-rc.d start 20 1 2 3 4 5 . stop 60 0 6 .   

一定要注意,寫在一起的時候後面的兩個「.」符號一定要有,不然報錯。

3、從所有的執行級別中刪除制定的啟動項

update-rc.d -f remove

根據上面的介紹,如何將乙個軟體安裝為服務也就比較清楚了,那就是在/etc/init.d新增乙個服務的啟動指令碼,然後在需要啟動服務的對應級別中/etc/rc[0~6].d按照檔名格式新增乙個指向/etc/init.d的指令碼符號鏈結。

以apache2為例,預設情況下,apache2編譯安裝在/usr/local/apache2,apache2的伺服器啟動指令碼是/usr/local/apache2/bin/apachectl,那麼安裝服務就是要把此apachectl拷貝到需要啟動apache2伺服器的執行級別對應的/etc/rc[0~6].d目錄下,一半來說ubuntu的執行級別為2,所以也就是拷貝到/etc/rc2.d下。

[plain]view plain

copy

sudo cp /usr/local/apache2/bin/apachectl /etc/init.d/apache2  

如果手動新增的話:

[plain]view plain

copy

sudo ln -s /etc/init.d/apache2 /etc/rc2.d/s80apache2  

重啟伺服器後,就可以看到apache2自動啟動了。

這時如果想要停止或重啟apache2也可以使用以下命令:

[plain]view plain

copy

service apache2 stop  

service apache2 restart  

使用update-rc.d來新增:

[plain]view plain

copy

sudo update-rc.d apache2 start 80 2 3 4 5 .  

sudo update-rc.d apache2 stop 80 0 1 6 .  

如果不想要這個apache2啟動和停止的服務話,把它remove掉:

[plain]view plain

copy

sudo update-rc.d -f apache2 remove  

引數-f是強制刪除符號鏈結,即使/etc/init.d/apache2仍然存在。

同樣我們也可以使用defaults引數來向執行級別2、3、4、5啟動服務,也就是start,並同時向執行級別0、1、6新增關閉命令,即stop。

[plain]view plain

copy

sudo update-rc.d apache2 defaults 80 80  

第乙個80代表start,第二個80代表stop。

rc.local

在/etc/rc[2~5].d目錄下都會有乙個s99rc.local指令碼,這是乙個指向/etc/init.d/rc.local的鏈結,可以看出,在正常的2~5級別啟動的最後都會呼叫這個rc.local指令碼。而/etc/init.d/rc.local中又會檢查是否存在/etc/rc.local,並執行。因此,我們也可以在/etc/rc.local中寫入**,來隨系統啟動某些程式,實現類似服務的功能。

綜上,我們可以看到,系統的啟動呼叫過程如下:

核心 -> /etc/init/rc-sysint.conf -> /etc/inittab -> etc/init.d/rc -> /etc/rc[0~6].d -> /etc/init.d/rc.local ->/etc/rc.local

雖然在ubuntu後來的版本中預設已經沒有了inittab檔案,但我可以自行新增。

以上的啟動過程,並不是代表所有,以redhat系列的centos5為例:

核心 -> /etc/inittab -> /etc/ rc.sysinit (/etc/rc.d/rc.sysinit) -> /etc/rc[?].d (/etc/rc.d/rc[?].d) -> /etc/rc.local(/etc/rc.d/rc.local)

ubuntu開機啟動

ubuntu開機之後會執行 etc rc.local檔案中的指令碼,所以我們可以直接在 etc rc.local中新增啟動指令碼。當然要新增到語句 exit 0前面才行。比如,我希望開機啟動goagent,那麼 1.vim etc rc.local 2.在exit 0前面新增下列語句 python ...

在Ubuntu 10 04中管理開機啟動的服務

在10.04之前的都是用chkconfig命令來管理服務,在10.04版本中chkconfig已經不起作用了,取而代之的改為用update rc.d命令來管理服務啟動的設定。在用apt get安裝gninx,apache2,mysql之後,安裝程式都會把這些服務預設成開機即啟動。執行下面的命令,將會...

ubuntu 設定開機啟動

1 方法一,編輯rc.loacl指令碼 ubuntu開機之後會執行 etc rc.local檔案中的指令碼,所以我們可以直接在 etc rc.local中新增啟動指令碼。當然要新增到語句 exit 0前面才行。如 sudo vi etc rc.local 然後在 exit 0 前面新增好指令碼 2 ...