1. RHEL7下自己新建一个脚本,如tomcat。
经过后面的几个步骤后,这个脚本在开机的时候会执行,在这个脚本里面可以写你开机的时候想执行的命令,如启动Tomcat,Oracle等服务
2. 在脚本中输入启动服务的命令,如(开机启动tomcat):
# vi /etc/init.d/tomcat #!/bin/bash #chkconfig: 2345 08 92 #description: Start
export Java_HOME=/usr/java/jdk1.6.0_45
echo "Starting Tomcat Service ..." /root/tomcat6.0/bin/startup.sh
注意:export JAVA_HOME=/usr/java/jdk1.6.0_45 这里要配置环境变量,在/etc/profile中的配置在系统服务中不生效
3. 执行如下命令,将该脚本标记为可执行文件(添加可执行的权限)
chmod x /etc/init.d/tomcat
4. 执行如下命令将/etc/rc.d/rc.local文标记为可执行文件
在CentOS7中,/etc/rc.d/rc.local文件的权限被降低了,开机的时候执行在自己的脚本是不能起动一些服务的,执行下面的命令可以文件标记为可执行的文件
chmod x /etc/rc.d/rc.local
5. 打开/etc/rc.d/rc.local文件,在最后面添加如下脚本
/etc/init.d/tomcat
这样tomcat这个脚本在开机的时候就会被执行了,以后再这里面写启动服务的命令就可以了
6. 自启动多个tomcat
需要配置各个tomcat的环境变量,在/etc/profile中的配置在系统服务中不生效,修改各自己的bin目录catalina.sh文件
添加如下代码:
export JAVA_HOME=/usr/java/jdk1.8.0_144 export JRE_HOME=/usr/java/jdk1.8.0_144/jre
6.1 创建自启动多个tomcat的shell脚本
# vi /etc/init.d/tomcat.sh 或者自己定义shell脚本位置也行(/home/sh/tomcat.sh) #!/bin/bash #chkconfig: 2345 08 92 #description: Start
echo "Starting Tomcat Service ..." /root/tomcat6.0/bin/startup.sh /root/tomcat7.0/bin/startup.sh /root/tomcat8.0/bin/startup.sh
8. /etc/rc.d/rc.local文件,在最后面添加如下脚本
/home/sh/tomcat.sh
9. 如果一台服务器上tomcat应用和数据库在一台服务器上,开机自启动是需要数据库先启动在启动tomcat应用,所以命令顺序:启动数据库命令放在前面,tomcat启动命令放在最后
# cat /etc/rc.d/rc.local #!/bin/bash # THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES # # It is highly advisable to create own systemd services or udev rules # to run scripts during boot instead of using this file. # # In contrast to previous versions due to parallel execution during boot # this script will NOT be run after all other services. # # Please note that you must run 'chmod x /etc/rc.d/rc.local' to ensure # that this script will be executed during boot. touch /var/lock/subsys/local
su - oracle -lc "/u01/app/oracle/product/11.2.0/dbhome_1/bin/lsnrctl start ORCL" su - oracle -lc /u01/app/oracle/product/11.2.0/dbhome_1/bin/dbstart
/etc/init.d/starttomcat.sh