CentOS7下利用init.d启动脚本实现tomcat开机自启动

时间:2021-08-15 15:41:17

1.在/etc/init.d/目录下创建tomcat服务脚本文件 内容如下

#!/bin/bash
#
# tomcat startup script for the Tomcat server
#
#
# chkconfig: 345 80 20
# description: start the tomcat deamon
#
# Source function library
. /etc/rc.d/init.d/functions

prog=tomcat
 JAVA_HOME=/usr/java/jdk1.8.0_91/  # 根据自己的路径改写JAVA_HOME
export JAVA_HOME
CATALANA_HOME=/home/work/tomcat/   # 根据自己的路径改写CATALANA_HOME
export CATALINA_HOME

case "$1" in
start)
    echo "Starting Tomcat..."
    $CATALANA_HOME/bin/startup.sh
    ;;

stop)
    echo "Stopping Tomcat..."
    $CATALANA_HOME/bin/shutdown.sh
    ;;

restart)
    echo "Stopping Tomcat..."
    $CATALANA_HOME/bin/shutdown.sh
    sleep 2
    echo
    echo "Starting Tomcat..."
    $CATALANA_HOME/bin/startup.sh
    ;;

*)
    echo "Usage: $prog {start|stop|restart}"
    ;;
esac
exit 0

2.赋权

[root@localhost /]# cd /etc/init.d/
[root@localhost init.d]# chmod 755 tomcat    #赋予权限
[root@localhost init.d]# service tomcat start  #启动服务
Starting tomcat (via systemctl):                          [  确定  ]
[root@localhost init.d]# service tomcat stop   #停止服务
Stopping tomcat (via systemctl):                          [  确定  ]
[root@localhost init.d]# service tomcat restart  #重启服务
Restarting tomcat (via systemctl):                        [  确定  ]

3.加入系统自启

[root@localhost zm]# chkconfig tomcat on  #服务脚本加入到系统启动队列
[root@localhost zm]# chkconfig --list  tomcat  #检查tomcat服务是否已经生效
注意:该输出结果只显示 SysV 服务,并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖。
      如果您想列出 systemd 服务,请执行 'systemctl list-unit-files'。
      欲查看对特定 target 启用的服务请执行
      'systemctl list-dependencies [target]'
tomcat8         0:关    1:关    2:开    3:开    4:开    5:开    6:关

4.reboot,验证

一般情况下,启动是没有问题的。

这里多说点儿,因为CentOS7的自启动服务开始由systemctl逐渐替代了早期版本中的chkconfig和service形式。 
这里我尝试了一下用指令:systemctl start tomcat8启动服务,系统提示systemctl daemon-reload命令加载服务,执行后,发现可以通过systemctl命令进行简单的控制,如查询状态,启动服务,终止服务,重启服务等操作。但是关于开机启动的设置是不可以的,还需要通过老命令chkconfig实现。

4.