[svc]centos6使用chkconfig治理服務和其原理
阿新 • • 發佈:2018-03-04
scan lvm2 linux 啟動腳本 使用率 負責 proto mod 原理
centos6開機啟動級別
$ cat /etc/inittab
...
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
linux啟動過程
chkconfig默認管理345級別開機啟動
參考
chkconfig --list #列出所有的系統服務 chkconfig --add httpd #增加httpd服務 chkconfig --del httpd #刪除httpd服務 chkconfig --level httpd 2345 on #設置httpd在運行級別為2、3、4、5的情況下都是on(開啟)的狀態 chkconfig --list #列出系統所有的服務啟動情況 chkconfig --list mysqld #列出mysqld服務設置情況 chkconfig --level 35 mysqld on #設定mysqld在等級3和5為開機運行服務,--level 3
chkconfig的原理
如何將自己的服務,托管給chkconfig管理?
1,腳本放在/etc/init.d下面,可以執行(/etc/init.d/sshd), 希望被chkconfig管理,需要添加到chkconfig --add sshd 2.chkconfig --level 3 sshd on,本質上市 rm -f /etc/rc.d/rc3.d/K25sshd ln -s /etc/init.d/sshd /etc/rc.d/rc3.d/S55sshd 3.chkconfig --level 3 sshd off rm -f /etc/rc.d/rc3.d/S55sshd ln -s /etc/init.d/sshd /etc/rc.d/rc3.d/K25sshd 4. /etc/init.d/sshd裏面設置了對應的級別啟動順序 # chkconfig: 2345 55 25 # description: SSH is a protocol... 5.開發自己的程序,讓chkconfig管理 $ cat /etc/init.d/maotai #!/bin/bash # chkconfig: 2345 56 26 # description: maotai service test... case "$1" in start) action "maotai is started" /bin/true ;; *) echo "$0 USAGE{start|stop|restart}" chkconfig --add/del maotai
小結:
- 1.把重要命令加到/etc/rc.local也能達到讓啟動命令開機時候啟動目的.
- 2.添加一個服務,比如3級別的nfs自啟動,chkconfig相當於在/etc/init.d/rc3.d目錄裏做個軟鏈接:S60nfs
- 3.軟鏈接的首字母為"K",表示關機時候會會關閉,為"S"表示開機時候會啟動,數字60為開機服務啟動的順序,這個數字可以通過chkconfig控制的啟動腳本的開頭有明確的聲明.
- 4.添加,刪除系統自啟動服務的本質,實際上是在/etc/init.d/rc3.d穿件啟動與刪除腳本的軟鏈接.
生產例子: 精簡linux開機自啟動項
- 需要啟動項有:
rsyslog
sshd
network
crond
sysstat
- sysstat軟件包集成的主要工具為:
iostat:提供cpu使用率及硬盤吞吐效率的數據
mpstat:工具提供與單個或多個處理器相關的數據
sar :工具負責收集,報告,病存儲系統活躍的信息.
思路:
1,關掉所有,啟動想啟動的
2,啟動想啟動的,關閉其他的
## awk過濾行,之後拼湊字符串
[root@n1 ~]# cat svc.txt |awk '{print "chkconfig",$1,"on"}'
chkconfig crond on
chkconfig dbus on
chkconfig docker on
chkconfig getty@tty1 on
chkconfig httpd on
chkconfig kmod-static-nodes on
chkconfig lvm2-lvmetad on
chkconfig lvm2-pvscan@8:2 on
chkconfig network on
chkconfig ntpdate on
chkconfig polkit on
chkconfig rhel-dmesg on
chkconfig rhel-import-state on
chkconfig rhel-readonly on
chkconfig rsyslog on
chkconfig sshd on
- 關掉所有,啟動想啟動的
[root@n1 ~]# cat svc.txt|grep 3:on|awk '{print "chkconfig",$1,"off"}'|bash #命令交給bash執行
[root@n1 ~]# cat svc.txt|grep -E "rsyslog|sshd|network|crond|sysstat" |awk '{print "chkconfig",$1,"on"}'
chkconfig crond on
chkconfig network on
chkconfig rsyslog on
chkconfig sshd on
- 啟動想啟動的,關閉其他的
[root@n1 ~]# cat svc.txt|grep -E "rsyslog|sshd|network|crond|sysstat" |awk '{print "chkconfig",$1,"on"}'
[root@n1 ~]# cat svc.txt|grep -vE "rsyslog|sshd|network|crond|sysstat" |awk '{print "chkconfig",$1,"off"}'
chkconfig dbus off
chkconfig docker off
chkconfig getty@tty1 off
chkconfig httpd off
chkconfig kmod-static-nodes off
chkconfig lvm2-lvmetad off
chkconfig lvm2-pvscan@8:2 off
chkconfig ntpdate off
chkconfig polkit off
chkconfig rhel-dmesg off
chkconfig rhel-import-state off
chkconfig rhel-readonly off
[svc]centos6使用chkconfig治理服務和其原理