在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 ...