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

相关推荐