[svc]centos6使用chkconfig治理服务和其原理
2023-09-27 14:21:16 时间
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
相关文章
- 高可用服务架构设计(14) - 深入理解hystrix的断路器执行原理以及模拟接口异常时的短路实验
- Dubbo源码解析实战 - 服务暴露原理
- nginx教程七,基于OpenResty用lua语言实现简单服务
- 微服务中 Zookeeper 应用及原理
- Spring cloud:订单微服务-接口层
- NFS 服务部署记录
- 服务企业互联网化用友进入3.0时代
- 【GoLang】golang 微服务框架 go-kit
- 通过Nginx、Consul、Upsync实现动态负载均衡和服务平滑发布
- SpringCloud 微服务实战笔记
- 在Docker Swarm模式下,Docker应用如何实现服务发现
- 微服务架构中模块划分和服务识别
- 为什么总是无法访问VMware内的web服务?
- 【Spring Cloud Alibaba】(二)微服务调用组件Feign原理+实战
- 构建Docker Compose服务堆栈
- redis服务启动脚本