将自己写的脚本添加至开机自启动服务和chkconfig的原理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将自己写的脚本添加至开机自启动服务和chkconfig的原理相关的知识,希望对你有一定的参考价值。

将自己写的脚本添加至开机自启动服务和chkconfig的原理

创建脚本测试

[[email protected] ~]# vim anuo.sh  --创建个脚本
# !/bin/bash
# chkconfig: 35 53 88   --指定3和5级别启动 53的启动的顺序    88是关闭的顺序
# description: is anuo  --可以随便说点啥, 最好的说明这个脚本的用途啥的。
echo Anuo Come on   --脚本的内容
[[email protected] ~]# mv anuo.sh /etc/init.d/      --必须将脚本放到/etc/init.d/目录下
[[email protected] ~]# chmod +x /etc/init.d/anuo.sh     --别忘记给脚本加执行权限
[[email protected] ~]# chkconfig --add anuo.sh      --添加开机自启动
[[email protected] ~]# chkconfig --list | grep anuo.sh      --可以看到开启级别的启动
anuo.sh         0:关闭    1:关闭    2:关闭    3:启用    4:关闭    5:启用    6:关闭

--这里的3和5级别的启动也就对应了上面的第一个35

小测试

[[email protected] ~]# ll /etc/rc.d/rc3.d/|grep anuo.sh     
lrwxrwxrwx  1 root root 17 5月  12 19:10 S53anuo.sh -> ../init.d/anuo.sh

--查看到3级别启动的文件里一个S53anuo.sh的链接文件(S表示开启,53也就对应了配置文件里的53的启动的顺序)

[[email protected] ~]# chkconfig anuo.sh off    --设置开机不启动
[[email protected] ~]# ll /etc/rc.d/rc3.d/|grep anuo.sh     
lrwxrwxrwx  1 root root 17 5月  12 19:30 K88anuo.sh -> ../init.d/anuo.sh

--再次查看发现S53anuo.sh的链接文件没有了,却多了个K88anuo.sh的链接文件(K表示不开启 88对应的是配置文件里的88关闭的顺序)

小结:要把脚本放到/etc/init.d/目录下并给执行权限,当chkconfig设置开机自启动时候会在相应的启动级别的文件里创建S开头的链接文件,同时会删除以K开头的对应的链接文件,反之也亦然。(也可以手动删除、创建链接文件也是一样的效果)

精简开机自启动

方法1思路:找出需要关闭的的服务将其关闭

[[email protected] ~]# chkconfig --list|grep "3:on"|egrep -v "network|rsyslog|crond|sysstat|sshd"|awk ‘{print "chkconfig",$1,"off"}‘|bash

[[email protected] ~]# chkconfig --list | grep "3:on"   --查看剩下开启的
crond           0:off   1:off   2:off   3:on    4:off   5:on    6:off
network         0:off   1:off   2:off   3:on    4:off   5:on    6:off
rsyslog         0:off   1:off   2:off   3:on    4:off   5:on    6:off
sshd            0:off   1:off   2:off   3:on    4:off   5:on    6:off
sysstat         0:off   1:on    2:off   3:on    4:off   5:on    6:off

方法2思路:将所有服务全部关闭自启动,再开启需要开启的服务。

[[email protected] ~]# LANG=en_SU.UTF-8     --调整字符集
[[email protected] ~]# echo $LANG
en_SU.UTF-8

[[email protected] ~]# for i in `chkconfig --list |grep "3:on" | awk ‘{print $1}‘`;do chkconfig --level 2345 $i off ;done
[[email protected] ~]# chkconfig --list | grep "3:on"   --查看没有就说明全部关闭成功
[[email protected] ~]# for i in network rsyslog crond sysstat sshd;do chkconfig --level 35 $i on;done
[[email protected] ~]# chkconfig --list | grep "3:on"   --查看开启也成功了
crond           0:off   1:off   2:off   3:on    4:off   5:on    6:off
network         0:off   1:off   2:off   3:on    4:off   5:on    6:off
rsyslog         0:off   1:off   2:off   3:on    4:off   5:on    6:off
sshd            0:off   1:off   2:off   3:on    4:off   5:on    6:off
sysstat         0:off   1:on    2:off   3:on    4:off   5:on    6:off

以上是关于将自己写的脚本添加至开机自启动服务和chkconfig的原理的主要内容,如果未能解决你的问题,请参考以下文章

centOS 开机自启动自己的脚本

Centos7下添加开机自启动服务和脚本

CentOS -- 添加开机自启动 命令 脚本

Centos 下添加开机自启动服务和脚本

Linux(Ubuntu)之设定开机自启动

centos7添加开机启动服务/脚本