配置服务开机自启动三种方式

时间:2024-03-08 15:54:14

方法一:ln -s 建立软连接

  在CentOS中总共有7种运行级别,可以在/etc/inittab 文件中进行设置,7种运行级别对应着 /etc/rc.d/rc[0-6].d 这七个目录

   ps: 你可能也发现了在/etc下也有同样的7个文件夹即 /etc/rc[0-6].d ,通过查看发现/etc/rc[0-6].d其实就是/etc/rc.d/rc[0-6].d的软连接,只是为了保持和Unix的兼容性

  这7个目录对应着7种不同运行级别,也就是说在每一个目录下的内容表示在该运行级别下应该启动或者关闭的服务。例如我们看一下/etc/rc.d/rc5.d目录下的内容

   当然你可能也发现了,这些文件是按照如下格式命名的 [KS][1-100]servicename ,它表示当系统的运行级别为5时,它会关掉以K开头的所有服务,并启动所有以S开头的服务,其实,这些服务都是/etc/init.d/中某个服务的软连接,所以真正启动的服务是/etc/init.d目录中的某一个服务,而以K/S开头建立软连接是为了表明在对应级别下应该采取的行为,K/S后面紧跟的数字表示开/关服务的优先级。

    因此,如果我们自己写了一个脚本代码 如cleanupd,需要在开机级别为3的时候自启动的话,那么我们只需要把可执行的cleanupd脚本文件放到 /etc/init.d目录下,并在对应的运行级别目录下 如/etc/rc.d/rc3.d/ 建立一个以S开头后加数字的软连接到/etc/init.d/cleanupd即可,如

[root@localhost ~]# ln -s /etc/init.d/cleanupd /etc/rc.d/rc3.d/S95cleanup

显然,这样的设置方式比较繁琐,仅仅适合于我们想DIY的脚本服务。
方法2:chkconfig

鉴于上面的手工操作比较繁琐,在CentOS中专门提供了chkconfig 命令来设置或者取消开机自启动服务。如,查询所有开机启动的服务:


使用chkconfig 或者 chkconfig –list就可以看出当前系统已经设置的各个服务在各个运行级别下的开闭状态。如果我们想设置某个服务自启动或者关闭的话,那么只需要按照下面的格式使用即可

chkconfig servicename on/off

   如:
1. 查看 sshd

2. 将 sshd 设置为开机自启动:

[root@host ~]# chkconfig sshd on


取消 sshd 的开机自启动,只需要将 on 改为 off 即可:

[root@host ~]# chkconfig sshd off
3.值得注意的是,如果这个服务尚未被添加到 chkconfig 列表中,则现需要使用 –-add 参数将其添加进去:

[root@host ~]# chkconfig --add sshd

4.如果要查询当前所有自动启动的服务,可以输入:

[root@host ~]# chkconfig --list

5.如果只想看指定的服务,只需要在 “–-list” 之后加上服务名就好了,比如查看httpd服务是否为自动启动:

[root@host ~]# chkconfig --list httpd

[root@host ~]# chkconfig --list httpd
httpd           0:off   1:off   2:off   3:off   4:off   5:off   6:off

此时0~6均为off,则说明httpd服务不会在系统启动的时候自动启动。我们输入:

[root@host ~]# chkconfig httpd on
则此时为:

[root@host ~]# chkconfig --list httpd
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off

这个时候2~5都是on,就表明会自动启动了。
方法三:修改 /etc/rc.d/rc.local 这个文件:

例如将 apache、MySQL、samba、svn 等这些服务的开机自启动问题一起搞定:

    vi/etc/rc.d/rc.local

添加以下命令

    /usr/sbin/apachectlstart
    /etc/rc.d/init.d/mysqldstart
    /etc/rc.d/init.d/smbstart
    /usr/local/subversion/bin/svnserve -d