httpd服務如何開機啟動
在之前的學習中我們已經知道怎樣收到啟動服務或者停止服務,以httpd服務在Redhat5、centos6為例:
啟動服務:
service httpd start
停止服務:
service httpd stop
重啟服務:
service http restart
那麽我們如何設置一個httpd服務開機啟動呢?
方法一:
我們可以用ntsysv命令查看,帶*的為開機啟動的服務,不帶*的為開機不啟動的服務,也可以手動進行設置,但是設置只工作在當前模式下,切換到其它模式無效
我們知道Linux有多種工作模式具體可以查看/etc/initab文件
方法二:使用腳本制作開機自啟服務
1、ls /etc/init.d
我們發現系統已經有httpd服務的腳本,如果沒有需要自己寫腳本並且移動到/etc/init.d目錄,我們需要註意作為服務的腳本必須有以下兩行
chkconfig: - 85 15
- 代表工作哪種模式,希望設置為哪種模式就設置為哪種模式,比如可以設置在3,5模式就寫35中間不需要任何符號在這裏我們不指定
85第一個數字代表開始的運行次序S*: S##*:##運行次序;數字越小,越先運行;數字
越小的服務,通常為被依賴到的服務
15第二個數字代表停止的運行次序K*: K##*:##運行次序;數字越小,越先運行;數字
越小的服務,通常為依賴到別的服務
簡單來說比如一個服務要依賴網絡服務在模式3下網絡服務的運行次序是S10,我們寫的服務必須在網絡服務開啟之後才能開啟,並且在網絡服務關閉之前關閉,否則網絡服務無法關閉,因此S值應該大一點,K值應該小一點
description:
如果要自己寫腳本作為一項開機自啟服務在腳本中需要註意一下幾個方面:
腳本不能調用單獨的函數
不能是交互式
有執行權限
2、chkconfig命令查看服務在所有級別的啟動或關閉設定情形
chkconfig --list httpd 查看所有開機自啟的服務發現沒有httpd
3、chkconfig --add httpd 添加腳本到開機自啟列表,但是它並沒有被運行開機啟動
4、因為我們沒有在httpd服務腳本指定運行在哪個模式下,可以在此設置,比如我希望在當前模式下開機啟動
先查看當前模式:runlevel
chkconfig --level 5 httpd on
這時查看/etc/rc.d/rc5.d發現以S開頭運行次序是85
而在其他模式比如3模式下以K開頭次序是15
5、重啟,命令service httpd status 查看指定模式httpd服務是不是開機自啟
這樣一個開機自啟服務就做好了!
httpd服務如何開機啟動