Linux中通过ln软连接的方式设置服务开机自启动
有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务。
例如:Tomcat、MySQL、Redis、MongoDB服务等等。
不用再人工的手动开启这些服务,这样比较繁琐。
下面我们简单的介绍一下通过ls软连接的方式设置服务开机自启动
提示:
以下操作设计到Linux的运行级别概念。
请参数--->浅谈Linux系统中的7种运行级别。
1、ln -s[多用于自定义脚本]
在Linux中有7种运行级别
每种运行级别分别对应着/etc/rc.d/rc[0~6].d这7个目录。
每个目录下分别存放着对应运行级别加载时需要关闭或启动的服务。
由详细信息可知,其实每个脚本文件都对应着/etc/init.d/目录下服务。
如下图:
运行级别0 1 2 3 4 5 6对应的目录rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d
[root@kingdom rc.d]# cd /etc/rc.d/
[root@kingdom rc.d]# ll
以级别3为例:
[root@kingdom rc.d]# cd rc3.d/
[root@kingdom rc3.d]# ls
//当运行级别在3时,开机会执行rc3.d/下的链接文件
//以此来实现开机启动某些服务
//如下几个是我们常见的服务
//S表示(start) K(kill),数字表示优先级
S10network S55sshd S64mysqld S60vsftpd
总结一句
因此,当我们需要开机启动自己的脚本时。
只需要将可执行脚本扔在/etc/init.d目录下。
然后在/etc/rc.d/rc[0~6].d中建立软链接即可。
案例:以Tomcat服务为例
[root@kingdom bin]# cd /general/tomcat-8.5-base/bin/
[root@kingdom bin]# ll
[root@kingdom bin]# cp startup.sh /etc/init.d/
[root@kingdom bin]# cd /etc/init.d/
[root@kingdom init.d]# ls
//此处startup.sh是具体服务的脚本文件
//S90startup.sh是其软链接,S(start)开头代表加载时自启动
//rc3.d 为级别3
//需要在多个运行级别下设置自启动,则需建立多个软链接
ln -s /etc/init.d/startup.sh /etc/rc.d/rc3.d/S90startup.sh
ll
总结:
如果需要在多个运行级别下设置自启动,则需建立多个软链接。
这种方式比较繁琐,适用于自定义的服务脚本。
如果系统中已经存在某些服务,如:httpd、mysqld、docker等等
请参考--->浅谈Linux中通过chkconfig来设置服务开机自启动。
欢迎大家给予宝贵的意见或者建议。
欢迎大家补充或者共享一些其他的方法。
感谢支持。