Linux系统的tomcat以daemon模式启动

目录

1 序言

2 安装jsvc

3 添加开机自启服务

3.1 debian系统为准

3.1.1 对 daemon.sh 脚本做修改:

3.1.2 添加服务

3.1.3 开启服务

3.2 centos系统为准

3.2.1 对 daemon.sh 脚本做修改:

3.2.2 添加服务

3.2.3 开启服务


1 序言

Jsvc 是专为 Java 应用程序开发的一个工具包,其目标是把 Java 应用程序的普通运行转换为可以配置某个普通用户以 Unix 守护进程的方式运行。这样的话,可以很方便地启动 / 停止应用程序,同时也可以支持开机自启。开机自启tomcat是比较重要的,可以保证由于意外而使机器需要重启时不需要手动重启tomcat就可以自动恢复服务。

简而言之,在生产环境中我们需要将tomcat配置成以daemon守护进程来运行,主要有以下几个原因:

  • 以daemon方式运行tomcat可使tomcat不受终端影响,不会因为退出终端而停止运行。
  • 可以让tomcat以普通用户身份运行。
  • 可以让tomcat在系统启动时自动运行。

 

2 安装jsvc

Tomcat 安装包的 bin 子目录下就包含了 Jsvc 工具包的源码,整个建立过程很方便,如下。

假设java8的安装目录是 /usr/softwares/jdk1.8.0_181

#解压安装tomcat8.5
cd /usr/softwares/
tar -xzvf apache-tomcat-8.5.34.tar.gz

#解压安装tomcat中的jsvc
cd apache-tomcat-8.5.34/bin
tar -xzvf commons-daemon-native.tar.gz
cd commons-daemon-1.1.0-native-src/unix/
./configure --with-java=/usr/softwares/jdk1.8.0_181
make
cp jsvc /usr/softwares/apache-tomcat-8.5.34/bin

 

3 添加开机自启服务

3.1 debian系统为准

默认当前目录在 /usr/softwares/apache-tomcat-8.5.34/bin

3.1.1 对 daemon.sh 脚本做修改:

#说明:找到 test ".$TOMCAT_USER" = . && TOMCAT_USER= 这一行,在前面加上jdk和tomcat环境配置
JAVA_HOME=/usr/softwares/jdk1.8.0_181
CATALINA_HOME=/usr/softwares/apache-tomcat-8.5.34
test ".$TOMCAT_USER" = . && TOMCAT_USER=root

参数说明:

TOMCAT_USER=root,以root用户来执行tomcat程序

 

3.1.2 添加服务

debian系统支持 update-rc.d 命令添加/删除服务

#若/etc/init.d/tomcat已存在,则需要先删除
vim /etc/init.d/tomcat

#!/bin/bash

### BEGIN INIT INFO
# Provides:          tomcat
# Required-Start:    $remote_fs
# Required-Stop:     $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: tomcat 8.5 auto start
### END INIT INFO

################################################
tomcat_daemon=/usr/softwares/apache-tomcat-8.5.34/bin/daemon.sh

start() {
    echo -n "Starting tomcat: "
    ${tomcat_daemon} start
    echo "tomcat start ok"
}

stop() {
    echo -n "Shutdown tomcat: "
    ${tomcat_daemon} stop
    echo "tomcat stop ok"
}

#how we were called

case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        stop
        sleep 10
        start
        ;;
    *)
        echo "Usage: $0 {start|stop|restart}"
esac

exit 0

参数说明
Default-Start    默认在这些级别,启动
Default-Stop     默认在这些级别,停止

 

#授权
chmod 777 /etc/init.d/tomcat

#添加tomcat服务,以默认的级别defaults(即2,3,4,5启动;0,1,6停止),且启动顺序为40,关闭顺序为80
update-rc.d tomcat defaults 40 80

 

科普update-rc.d:

在用这个命令前,需要把执行文件放到 /etc/init.d 目录下,注意,若此服务已经存在想要修改,建议是先删除了再重新添加。

添加服务的命令:

update-rc.d 执行文件名 start 20 2 3 4 5 . stop 80 0 1 6 .
相当于
update-rc.d 执行文件名 defaults 20 80

删除服务的命令:

update-rc.d -f 执行文件名 remove

 

查看开机自启动服务是否添加成功,可以查看 /etc/rc*.d 目录下是否存在这些执行文件名的软链接。

其实服务级别0,1,2,3,4,5,6在目录 /etc 下有对应的文件目录:rc0.d,rc1.d,rc2.d,rc3.d,rc4.d,rc5.d,rc6.d。

若设置在相应级别下启动,则该级别目录下会有以S开头(start的意思)的执行文件名;若设置在相应级别下停止,则该级别目录下会有以K开头(kill的意思)的执行文件名。

查看服务的命令:

ls /etc/rc*.d

Linux系统的tomcat以daemon模式启动_第1张图片

 

3.1.3 开启服务

#开启tomcat服务
service tomcat start
#关闭tomcat服务
service tomcat stop
#重启tomcat服务
service tomcat restart
#查看tomcat服务的状态
service tomcat status

最后,重启机器,再查看下该进程就可以知道是否开机自启动了。

reboot

ps -aux|grep tomcat

 

3.2 centos系统为准

默认当前目录在 /usr/softwares/apache-tomcat-8.5.34/bin

3.2.1 对 daemon.sh 脚本做修改:

#说明:在首行 #!/bin/sh 的下一行添加服务配置信息
# chkconfig: 2345 20 80
# description: Startup script for the Tomcat 8.5 Server

#说明:找到 test ".$TOMCAT_USER" = . && TOMCAT_USER= 这一行,在前面加上jdk和tomcat环境配置
JAVA_HOME=/usr/softwares/jdk1.8.0_181
CATALINA_HOME=/usr/softwares/apache-tomcat-8.5.34
test ".$TOMCAT_USER" = . && TOMCAT_USER=root

参数说明
chkconfig 的2345表示默认服务级别,启动顺序为20,关闭顺序为80

TOMCAT_USER=root,以root用户来执行tomcat程序

 

3.2.2 添加服务

centos系统支持 chkconfig 命令添加/删除服务

cp daemon.sh /etc/init.d/tomcat

#添加tomcat服务
chkconfig --add tomcat
chkconfig --list tomcat #查看服务是否添加成功

关于chkconfig命令比较简单,网上也随便可以找到详情,这里就不多说了。

 

3.2.3 开启服务

#开启tomcat服务
service tomcat start
#关闭tomcat服务
service tomcat stop
#重启tomcat服务
service tomcat restart
#查看tomcat服务的状态
service tomcat status

最后,重启机器,再查看下该进程就可以知道是否开机自启动了。

reboot

ps -aux|grep tomcat

 

 

 

 

你可能感兴趣的:(tomcat)