Linux下/etc/init.d和/etc/rc.d/rc.local的区别说明:
/etc/init.d是个目录,这个目录里面用于放置shell脚本,注意是脚本,这些脚本是启动脚本,用于Linux中服务的启动、停止、重启,比如各种Linux中的服务都会有启动脚本放在这里,像是ssh服务的文件sshd就在这里面。而/etc/rc.d/rc.local是一个文件,这个文件用于用户自定义开机启动程序,也就是说用户可以把需要开机启动的程序、命令写入这个文件,这样就可以在系统启动时自动执行这个命令,比如把一个shell脚本的完整路径写入这个文件,那这个shell脚本就会在开机后自动执行。
开机自启动Tomcat:
每次开机都要启动tomcat,用shell脚本来实现tomcat开机自启动或者直接修改系统文件来实现。
一、改脚本文件rc.local:vim /etc/rc.d/rc.local
这个脚本是使用者自定的开机启动程序,可以在里面添加想在系统启动之后执行的脚本或者脚本执行命令
1、如下内容:
export Java_HOME=/opt/jdk1.8.0_65
/opt/tomcat包名/bin/startup.sh start
2、esc 退出编辑,:wq 保存修改
3、将rc.local修改为可执行
chmod +x /etc/rc.d/rc.local
二、在/etc/init.d目录下创建启动shell脚本文件
1、/etc/init.d里增加一个开机 运行脚本tomcatstart
vi /etc/init.d/tomcatstart
#!/bin/bash
#chkconfig: 2345 08 92
#description: Start
echo "Starting Tomcat Service ..."
/opt/tomcat8/bin/startup.sh
2、给些启动脚本加上执行
chmod +x /etc/init.d/tomcatstart
3、利用chkconfig命令将脚本设置为自启动
chkconfig --add tomcatstart
三、shell脚本说明
#!/bin/bash
#chkconfig: 2345 08 92
#description: Start
第一行,告诉系统使用的shell,所有的shell脚本都是这样。
第二行,chkconfig后面有三个参数2345,08和92告诉chkconfig程序,需要在/etc/rc.d/rc2.d~rc5.d目录下,创建名字为 S08tomcatstart的文件连接,连接到/etc/rc.d/init.d目录下的的tomcatstart脚本。第一个字符是S,系统在启动的时候,运行脚本tomcatstart,就会添加一个start参数,告诉脚本,现在是启动模式。
同时在/etc/rc.d/rc0.d和/etc/rc.d/rc6.d目录下,创建名字为K92tomcatstart的 文件连接,第一个字符为K,在关闭系统的时候,会运行tomcatstart,添加一个stop参数,告诉脚本,现在是关闭模式。
注意上面的三行中:第二、第三行是必须的,否则在运行chkconfig --add tomcatstart时,会报错。
四、rhel7开机启动自己的shell脚本
1、执行如下命令将/etc/rc.d/rc.local文标记为可执行文件
在rhel7中,/etc/rc.d/rc.local文件的权限被降低了,开机的时候执行在自己的脚本是不能起动一些服务的,执行下面的命令可以文件标记为可执行的文件
chmod +x /etc/rc.d/rc.local
2、打开/etc/rc.d/rc.local文件,在最后面添加如下脚本
vi /etc/rc.d/rc.local
/etc/init.d/tomcatstart
这样tomcatstart这个脚本在开机的时候就会被执行了,以后再这里面写启动服务的命令就可以了
rhel7开机自启动脚本可查看另外一篇:https://www.linuxidc.com/Linux/2019-07/159389.htm
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx