chkconfig设置开机自启动的原理

Posted licker

tags:

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

开机自启动服务的原理
$sudo chkconfig --level 3 sshd on #手动设置3级别的开机自启动 [[email protected] ~]
#手动设置3级别的开机自启动,实质是在对应运行级别的目录rc3.d下创建一个sshd的启动脚本(/etc/init.d/sshd)的软连接S55sshd,如下:
$ls -l /etc/rc.d/rc3.d/S55sshd
lrwxrwxrwx.
1 root root 14 Oct 3 11:06 /etc/rc.d/rc3.d/S55sshd -> ../init.d/sshd
而设置3级别的开机关闭,如下:

$sudo chkconfig --level 3 sshd off
[[email protected] ~]
$ls -l /etc/rc.d/rc3.d/K25sshd
lrwxrwxrwx. 1 root root 14 Oct 3 11:12 /etc/rc.d/rc3.d/K25sshd -> ../init.d/sshd

所以也可以通过修改软连接的方式,设置开机启动的方式,如下:

$chkconfig --list sshd
sshd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[[email protected] ~]
$ls -l /etc/rc.d/rc3.d/ | grep sshd
lrwxrwxrwx. 1 root root 14 Oct 3 11:25 K25sshd -> ../init.d/sshd

[[email protected] ~]
$sudo m -f /etc/rc.d/rc3.d/K25sshd ; sudo ln -s /etc/init.d/sshd /etc/rc.d/rc3.d/S55sshd
[[email protected] ~]
$ls -l /etc/rc.d/rc3.d/S55sshd
lrwxrwxrwx. 1 root root 16 Oct 3 11:27 /etc/rc.d/rc3.d/S55sshd -> /etc/init.d/sshd
[[email protected] ~]
$chkconfig --list sshd
sshd 0:off 1:off 2:off 3:on 4:off 5:off 6:off

其中K55(关闭),S55(开启),在/etc/init.d/sshd中设置的,如下:

$sed -n ‘/55/p‘ /etc/init.d/sshd
# chkconfig: 2345 55 25

 

将服务或者脚本添加到系统服务中

自建脚本内容,如下:

$sudo vim /etc/init.d/leiyf
#!/bin/bash
#
# leiyfd          Start up the leiyf server daemon
#
# chkconfig: 2345 66 44

echo "Knowledge has no limit"

  添加可执行权限

sudo chmod +x /etc/init.d/leiyf

  添加到系统服务

$sudo chkconfig --add leiyf

此时可以看到在脚本leiyf中定义的2345级别到运行了,如下:

$sudo chkconfig --list leiyf
leiyf           0:off   1:off   2:on    3:on    4:on    5:on    6:off

关闭在3级别的开机启动,如下:

$sudo chkconfig --level 3 leiyf off
[[email protected] ~]
$sudo chkconfig --list leiyf       
leiyf           0:off   1:off   2:on    3:off   4:on    5:on    6:off

可以看到创建了如下的软链接,链接的名称也是在脚本(leiyf)中,定义:# chkconfig: 2345 66 44的44,如下:

$ls -l /etc/rc.d/rc3.d/ | grep leiyf
lrwxrwxrwx. 1 root root 15 Oct  3 11:58 K44leiyf -> ../init.d/leiyf

开启在3级别的开机启动,也可以看到如下软链接:

$sudo chkconfig --level 3 leiyf on
[[email protected] ~]
$ls -l /etc/rc.d/rc3.d/ | grep leiyf
lrwxrwxrwx. 1 root root 15 Oct  3 11:59 S66leiyf -> ../init.d/leiyf

 

 

  

 




















以上是关于chkconfig设置开机自启动的原理的主要内容,如果未能解决你的问题,请参考以下文章

chkconfig管理开机自启动服务的原理

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

Centos7如何设置脚本开机自启动?

Linux设置开机启动

Centos 7关于rc.local脚本命令开机不执行及指定用户启动的解决方法

开机自启服务运行级别