zoukankan      html  css  js  c++  java
  • Linux系统的tomcat以daemon模式启动并配置成服务202004

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

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

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

    1、在/usr/local/apache-tomcat-7.0.68/bin中有commons-daemon-native.tar.gz  压缩包(每个版本都有对应的包在tomat包里)

    2、解压commons-daemon-native.tar.gz 

    tar -zxvf commons-daemon-native.tar.gz

    3、解压完成,出现commons-daemon-1.0.15-native-src文件夹(目录)

    4、  执行configure 文件 

    cd commons-daemon-1.0.15-native-src/unix 
    ./configure 

    5、  编译 (注意不是安装,这里的是为了编译出jsvc文件)

    make

    6、 编译完成后出现jsvc文件夹,复制jsvc到/usr/local/apache-tomcat-7.0.68/bin目录下面 

    cp jsvc ../../ 

    7、避免内存溢出,设置环境变量(添加setenv.sh,内容如下)该文件放在bin下边,跟daemon.sh文件同级

    #add tomcat pid
    
    CATALINA_PID="$CATALINA_BASE/tomcat.pid"
    
    #add java opts
    
    JAVA_OPTS="-server -XX:PermSize=256M -XX:MaxPermSize=1024m -Xms512M -Xmx2048M -XX:MaxNewSize=256m"

    8、/usr/local/apache-tomcat-7.0.68/bin/daemon.sh start启动tomcat

    9、配置tomcat为系统服务,并实现自动启动,首先修改/usr/local/apache-tomcat-7.0.68/bin目录下daemon.sh脚本,在首行 #!/bin/sh 的下一行添加服务配置信息

    # chkconfig: 2345 20 80
    # description: Startup script for the Tomcat 7.0.65 Server

    10、找到 test ".$TOMCAT_USER" = . && TOMCAT_USER= 这一行,在前面加上jdk和tomcat环境配置

    JAVA_HOME=/usr/softwares/jdk1.6.0_45
    
    CATALINA_HOME=/usr/softwares/apache-tomcat-7.0.68
    
    test ".$TOMCAT_USER" = . && TOMCAT_USER=wyan

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

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

    11、把tomcat添加成系统服务进行启动,在上面的配置正确后,要将daemon.sh添加成为服务就非常简单了,只需要创建一个软链到/etc/rc.d/init.d/目录中即可(此步骤需要切换root,并且路径要为全路径)

    ln -s  /usr/softwares/apache-tomcat-7.0.68/bin/daemon.sh /etc/rc.d/init.d/tomcat7

    注意:切换到root用户,然后修改连接归属用户

    chown -R wyan:wyan /etc/rc.d/init.d/tomcat7

    然后可以切换到wyan用户进行启动停止测试

    1.启动:
    service tomcat7 start
    2.停止:
    service tomcat7 stop

    12、添加tomcat7服务自动启动,并查看是否添加成功

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

    然后重启linux发现tomcat会自动启动成功,注意守护进程是root的,工作进程是wyan的,这一点要知晓


     问题记录:把日志清除后,重启linux,tomcat随系统自动启动,发现日志中catalina-daemon.out日志文件所属用户是root,这个应该是正常的

    如果要把这个文件所属用户改成wyan,操作方式是保留catalina-daemon.out文件,并且chown -R wyan:wyan catalina-daemon.out执行,重启后文件所属用户仍然是wyan

    但是如果删除文件后,重启,文件所属用户又会变成root,所以catalina-daemon.out文件尽量不要删除;以后再找完美解决方案


     遇到问题描述:

    在使用了daemon方式启动后,发现应用打印出的日志为乱码,之前的启动方式不为乱码,在网上找了很多方法,解决方式都是在daemon.sh文件中添加字符集,最后通过添加如下配置解决:

    JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8"

    添加配置最好添加在之前配置的代码下边挨着,方便维护;(问题解决原理就是这里配置的字符集与linux的字符集相同,查看linux字符集命令:echo $LANG)

  • 相关阅读:
    Daily Scrum 10.29
    Daily Scrum 10.28
    git第一次commit代码阅读
    软工课程项目-数据库管理
    [Go]字典(map)的操作和约束
    [Go]链表的相关知识
    Kubernetes网络设计原则
    [Go]程序实体
    [Kubernetes]集群配置免密登录Permission denied (publickey,password) 解决办法
    [Go]GOPATH相关知识点
  • 原文地址:https://www.cnblogs.com/mxci/p/12804009.html
Copyright © 2011-2022 走看看