目录

前言

作为一个Java后端开发者,tomcat想必是最最最熟悉的一个开发组件了,tomcat环境的搭建部署都十分简单。安装部署只需要两步,第一步下载,第二步解压,这样一个基础的tomcat环境就搭建好啦。通常直接执行tomcat目录下的bin/startup.sh脚本进行启动,执行bin/shutdown.sh脚本进行关闭。刚工作那段时间一直都是这么操作的,玩的不亦乐乎,工作几年后忽然发现还能以daemon守护进程的方式进行运行,一下子被这波操作给安利了,简直666,今天就来说说如何操作。

版本

系统:CentOS-6.4 (系统有点老,手头就这一个镜像)

tomcat:8.5.60

关注本文末尾微信公众号,回复“666”获取常用开发工具包,内含常用开发组件,节省翻墙下载时间。

安装部署

1.下载

从tomcat库中选择一个最新版本进行下载

https://mirrors.cnnic.cn/apache/tomcat/

这边选择tomcat8 最新的版本,复制文件地址

https://mirrors.cnnic.cn/apache/tomcat/tomcat-8/v8.5.60/bin/apache-tomcat-8.5.60.tar.gz

cd /usr/local/work/
wget --no-check-certificate https://mirrors.cnnic.cn/apache/tomcat/tomcat-8/v8.5.60/bin/apache-tomcat-8.5.60.tar.gz

tar -zxvf apache-tomcat-8.5.60.tar.gz

2.创建用户

# 创建用户组
groupadd tomcat
# 创建用户(无登录权限)并加入tomcat组
useradd -g tomcat -s /usr/sbin/nologin tomcat

3.安装jsvc

# 进入tomcat bin目录
cd tomcat-8.5.60/bin/
# 解压 daemon
tar -zxvf commons-daemon-native.tar.gz

cd commons-daemon-1.2.3-native-src/unix/
# 调整为jdk安装目录
./configure --with-java=/usr/local/work/jdk1.8.0_172

make
cp jsvc /usr/local/work/tomcat-8.5.60/bin
cd /usr/local/work/tomcat-8.5.60/bin/

4.编辑daemon.sh

在daemon.sh中开头第二行添加如下信息

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

在daemon.sh中该行test ".$TOMCAT_USER" = . && TOMCAT_USER=tomcat上放添加jdk及tomcat信息

这边TOMCAT_USER=tomcat需和上面创建的用户名一致

# jdk安装目录
JAVA_HOME=/usr/local/work/jdk1.8.0_172
# tomcat目录
CATALINA_HOME=/usr/local/work/tomcat-8.5.60
test ".$TOMCAT_USER" = . && TOMCAT_USER=tomcat

4.赋权并添加服务

# 更改文件所有者
chown -R tomcat:tomcat /usr/local/work/tomcat-8.5.60
# 赋予用户执行权
chmod a+x /usr/local/work/tomcat-8.5.60/bin/daemon.sh
# 复制至/etc/init.d/
cp daemon.sh /etc/init.d/tomcat8
# 添加服务
chkconfig --add tomcat8
# 查看已有服务
chkconfig --list

# 启动
service tomcat8 start
# 关闭
service tomcat8 stop

至此tomcat已以daemon方式运行了,重启服务器后tomcat服务也会自动启动,nice。

5.日志中文乱码

在daemon方式运行后,在tomcat/logs目录下会出现2个新文件,如下

# 运行pid信息
catalina-daemon.pid
# 日志输出信息 原先日志输出文件 catalina.out
catalina-daemon.out

让我们查看下日志信息

tail -f -n 500 /usr/local/work/tomcat-8.5.60/logs/catalina-daemon.out

原先都是正常的,现在怎么乱码了呢,操作如下即可

打开/etc/init.d/tomcat8,在$LOGGING_MANAGER行调整如下

test ".$LOGGING_MANAGER" = . && LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"

追加编码配置“-Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8”

按如下配置

test ".$LOGGING_MANAGER" = . && LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8"

调整完后赶紧试一把,OK,搞定。

最新文章

  1. 《PHP中的Math函数》笔记
  2. Web 入门之 XML
  3. Qt5 从头学(1)-- 环境
  4. 制作和unity调用动态链接库dll文件
  5. lamp环境的配置
  6. 利用UIScrollView和UIPageControl实现多页图片欢迎页面
  7. Python实战之dict简单练习
  8. 【Spring】渲染Web视图
  9. ASP.NET控件GridView的使用& Xml操作注意事项
  10. OpenStack实践系列②认证服务Keystone
  11. Top 查看某些或者某个进程(top -p pid)
  12. sql存储过程编程带事务
  13. Odoo发送短信
  14. 从零玩转JavaWeb系列7web服务器-----表单的提交
  15. Java之泛型
  16. poj2154(polya定理+欧拉函数)
  17. C语言-数组篇
  18. ucos-ii核心算法分析(转)
  19. PHP smarty模版引擎基本安装
  20. redhat linux 从/home目录扩展空间至/根目录

热门文章

  1. 用 Java 训练深度学习模型,原来可以这么简单!
  2. DTU连接经常遇到的问题有哪些
  3. 阿里云app原型设计
  4. [Luogu P1122]最大子树和 (简单树形DP)
  5. Java集合(类)框架(一)
  6. 833. Find And Replace in String —— weekly contest 84
  7. c#导入文件以后查看制定值
  8. MyBatis源码解析
  9. null列的值不参与比较
  10. charles技能之修改请求参数/返回数据(map Local、Rewrite、Breakpoints)