zoukankan      html  css  js  c++  java
  • jsvc 以daemon方式运行tomcat

    原理:
    使用jsvc来运行服务,没有了默认8005的shutdown端口;
    主进程pid为1,fork 2个进程

    运行方式参考:http://commons.apache.org/proper/commons-daemon/jsvc.html

    centos 7

    • 1、建立 Jsvc

    Jsvc 是专为 Java 应用程序开发的一个工具包,其目标是把 Java 应用程序的普通运行转换为以 Unix 守护进程的方式运行。这样的话,可以很方便地启动 / 停止应用程序。Tomcat 安装包的 bin 子目录下就包含了 Jsvc 工具包的源码,整个建立过程很方便,如下。

    本文的脚本以 Tomcat 8.0.27,CentOS 7 为例。假定我的 JAVA 8 安装到 / opt/jdk8 处。

    $ cd /opt/tomcat8/bin
    $ sudo tar zvxf commons-daemon-native.tar.gz
    $ cd commons-daemon-1.0.15-native-src/unix
    $ sudo ./configure --with-java=/opt/jdk8
    $ sudo make
    $ sudo cp jsvc ../..
    
    • 2、创建 Tomcat 用户

    下面的命令会创建一个专门的用户来运行 Tomcat 实例,并会把 / opt/tomcat 目录及其文件的所有权赋予新创建的 tomcat 用户。

    $ sudo useradd -r -s /sbin/nologin tomcat
    $ sudo chown -R tomcat: /opt/tomcat8
    
    • 3、创建系统服务

    3.1 创建一个名为 tomcat.service 的系统服务脚本。
    vim /usr/lib/systemd/system/tomcat.service

    [Unit]
    Description=Apache Tomcat 8 Web Application Container
    After=network.target
    
    [Service]
    Type=forking
    PIDFile=/var/run/tomcat.pid
    Environment=CATALINA_PID=/var/run/tomcat.pid
    Environment=JAVA_HOME=/opt/jdk8
    Environment=CATALINA_HOME=/opt/tomcat8
    Environment=CATALINA_BASE=/opt/tomcat8
    Environment=CATALINA_OPTS=
    
    ExecStart=/opt/tomcat/bin/jsvc 
                -Dcatalina.home=${CATALINA_HOME} 
                -Dcatalina.base=${CATALINA_BASE} 
                -cp ${CATALINA_HOME}/bin/commons-daemon.jar:${CATALINA_HOME}/bin/bootstrap.jar:${CATALINA_HOME}/bin/tomcat-juli.jar 
                -user tomcat 
                -java-home ${JAVA_HOME} 
                -pidfile /var/run/tomcat.pid 
                -errfile SYSLOG 
                -outfile SYSLOG 
                $CATALINA_OPTS 
                org.apache.catalina.startup.Bootstrap
    
    ExecStop=/opt/tomcat8/bin/jsvc 
                -pidfile /var/run/tomcat.pid 
                -stop 
                org.apache.catalina.startup.Bootstrap
    
    [Install]
    WantedBy=multi-user.target
    

    开发者可以修改 CATALINA_OPTS 选项以满足自己的需要。

    3.2 让 Tomcat 服务在启动后就自动运行:

    $ sudo systemctl enable /usr/lib/systemd/tomcat.service
    ln -s '/usr/lib/systemd/tomcat.service' '/etc/systemd/system/multi-user.target.wants/tomcat.service'
    ln -s '/usr/lib/systemd/tomcat.service' '/etc/systemd/system/tomcat.service'
    

    3.3 使用下面的命令启动、重启、停止 Tomcat 服务

    $ systemctl start tomcat
    $ systemctl stop tomcat
    $ systemctl restart tomcat
    $ systemctl status tomcat
    

    来源: http://blog.csdn.net/chszs/article/details/49153881

    centos 6

    主要利用了提供的daemon.sh 脚本

    添加tomcat 用户:
    useradd -r -s /sbin/nologin tomcat

    vim /etc/init.d/tomcat

    #!/bin/bash
    
    #JAVA_HOME=/opt/zimbra/jdk-1.7.0_51
    TOMCAT_HOME=/usr/local/tomcat
    
    ################################################
    
    start_tomcat=$TOMCAT_HOME/bin/daemon.sh
    stop_tomcat=$TOMCAT_HOME/bin/daemon.sh
    
    start() {
        echo -n "Starting tomcat: "
        ${start_tomcat} start
        echo "tomcat start ok"
    }
    
    stop() {
        echo -n "Shutdown tomcat"
        ${stop_tomcat} 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
    
  • 相关阅读:
    Git 码云操作
    多线程基础必要知识点!看了学习多线程事半功倍(转)
    Spring技术内幕:设计理念和整体架构概述(转)
    单例模式你会几种写法?(转)
    Linux-看完这篇Linux基本的操作就会了(转)
    每天一个linux命令9之crontab 定时任务
    在linux下给grep命令添加颜色
    springmvc使用StringHttpMessageConverter需要配置编码
    MySQL 中的 base64 函数
    spirng整合rmi
  • 原文地址:https://www.cnblogs.com/bvac/p/5507722.html
Copyright © 2011-2022 走看看