目录

前言

作为一个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,搞定。

Linux Tomcat安装篇(daemon运行,开机自启动)的更多相关文章

  1. Linux Tomcat安装,Linux配置Tomcat,Linux Tomcat修改内存,Linux tomcat修改端口

    Linux Tomcat安装,Linux配置Tomcat,Linux Tomcat修改内存,Linux tomcat修改端口 >>>>>>>>>& ...

  2. Linux(CentOS)系统下设置nginx开机自启动

    Nginx 是一个很强大的高性能Web和反向代理服务器.下面介绍在linux下安装后,如何设置开机自启动.首先,在linux系统的/etc/init.d/目录下创建nginx文件,使用如下命令:vi ...

  3. CentOS6.8下安装memcached并设置开机自启动

    参考资料:http://www.cnblogs.com/handongyu/p/6419305.html    http://coolnull.com/1986.html 一.安装libevent 首 ...

  4. CentOS6.8下安装redis并配置开机自启动

    参考资料:http://www.bubuko.com/infodetail-1006383.html   http://www.cnblogs.com/skyessay/p/6433349.html ...

  5. linux下安装jsp开发运行环境(centos7)

    1 开发环境包括 1)apache-tomcat 2)java-jdk 3)mysql 2 apache-tomcat安装(应该先装java再装tomcat) 1)到官网下载最新版本(不建议用yum安 ...

  6. Linux Tomcat安装及端口配置

    1.  JDK安装配置 待写 2. Tomcat安装配置 1,下载Tomcat链接,到启动测试. 将文件apache-tomcat-8.5.50.tar.gz移动到/usr/tomcat/下,并解压 ...

  7. linux 7安装telnet,设置telnet自启动,使用root telnet登录

    1.安装启动服务 # yum install telnet-server # yum install xinetd # systemctl enable xinetd.service # system ...

  8. Linux Tomcat安装部署项目

    一.上传Tomcat服务器

  9. InstallShield2015制作安装包----------安装后实现电脑开机自启动

    开机自启动有两个方法: 一 .把程序的快捷方式放在”开始---启动“目录下. 二.把程序的安装目录放在注册表”“. 实现方法一: 1.编写bat脚本.执行bat启动exe. a)核心:cmd命令  : ...

随机推荐

  1. Java学习的第四十四天

    1.例5.4将二维数组的行列互换 public class cjava { public static void main(String []args) { int [][]a=new int [][ ...

  2. axios前端登录

    1.创建一个Login.vue页面 1.1 写页面 views/Login.vue 在 views/components 下创建 Login.vue 页面 1.2 src/router/index.j ...

  3. 在springmvc.xml中定义全局的异常处理

    在Controller类的内部方法上使用@ExceptionHandler,则此类的方法抛出未处理的异常时,回到此方法上处理. @ExceptionHandler可以指定异常的类型,会自动进行匹配 如 ...

  4. vim编辑器使用简介

    使用格式 vim [option] /path/to/somefile ... option: -o水平分割 -O垂直分割 +打开后在最后一行 +Num打开后在地Num行,加号与Num之间不能有空格 ...

  5. [C#.NET 拾遗补漏]11:最基础的线程知识

    线程的知识太多,知识点有深有浅,往深的研究会涉及操作系统.CUP.内存,往浅了说就是一些语法.没有一定的知识积累,很难把线程的知识写得全面,当然我也没有这个能力.所以想到一个点写一个点,尽量总结一些有 ...

  6. C#循环判断密码

      要求用户输入用户名和密码,只要不是admin.888888就一直提示用户名或密码错误,请重新输入 while (true) { Console.WriteLine("请输入帐号和密码&q ...

  7. SQL2005数据库可疑的解决方法

    sqlserver数据库标注为可疑的解决办法 一般引起可疑的原因是突然断电,服务器死机,强制关机导致正在运行的数据库文件损坏,需要进行修复.方法一:USE MASTER GOSP_CONFIGURE ...

  8. Serilog 源码解析——解析字符串模板

    大家好啊,上一篇中我们谈到 Serilog 是如何决定日志记录的目的地的,那么从这篇开始,我们着重于 Serilog 是向 Sinks 中记录什么的,这个大功能比较复杂,我尝试再将其再拆分成几个小块方 ...

  9. 3.4 spring5源码系列--循环依赖的设计思想

    前面已经写了关于三篇循环依赖的文章, 这是一个总结篇 第一篇: 3.1 spring5源码系列--循环依赖 之 手写代码模拟spring循环依赖 第二篇: 3.2spring源码系列----循环依赖源 ...

  10. jdk的动态代理和静态代理你还写不出来嘛???

    一.什么叫jdk的代理? 用另外一个对象去代理实际对象的操作 分为动态代理和静态代理二.先说说静态代理 从字面意思来看就是不会改变的,只可以代理某个固定对象的. 静态代理就是通过实现和目标对象实现的同 ...