RHEL7开机自启动shell脚本
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