1 前言

一直以来都觉得Tomcat以root身份运行非常不安全,故研究Tomcat如何以普通用户身份运行,以下是参考网络上的一些配置实现Tomcat以daemon方式运行于CentOS 6&7系统下面。

2 实践部分

2.1 环境配置

2.1.1 系统环境

ipaddress=10.168.0.157

OS=CentOS 6&7

2.1.2 配置编译环境

yum -y install gcc gcc-c++ make expat-devel
 

2.1.3 下载JDK

1)下载页面:

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

2)下载选择

请选择“jdk-8u111-linux-x64.tar.gz”下载,命令行如下:

wget http://download.oracle.com/otn-pub/java/jdk/8u111-b14/jdk-8u111-linux-x64.tar.gz?AuthParam=1479977626_06aed8a715c8fbbc10f72c89ee38910b
 

2.1.4 下载Tomcat

1)下载页面

http://tomcat.apache.org/

2)下载选择

请选择“Tomcat 9.0.0.M13”下载(注意选择“Binary Distributions”)版本,命令行如下:

wget http://apache.fayea.com/tomcat/tomcat-9/v9.0.0.M13/bin/apache-tomcat-9.0.0.M13.tar.gz
 

2.1.5 配置防火墙

In CentOS 6

vim /etc/sysconfig/iptables
 

增加如下行:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
 

重启防火墙使服务生效

/etc/init.d/iptables restart
 

In CentOS 7

firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload
firewall-cmd --list-all
 

2.2 配置JDK

2.2.1 创建java目录

mkdir /usr/java
 

2.2.2 解压

tar xf jdk-8u111-linux-x64.tar.gz
mv jdk1.8.0_111 /usr/java/
 

2.2.3 配置环境变量

vim /etc/profile
 

末尾加入如下内容:

export JAVA_HOME=/usr/java/jdk1.8.0_111
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
 

注:以上配置只是为了下面的daemon环境的编译,编译完可以注释

2.2.4 配置生效

source /etc/profile
 

2.2.5 环境变量测试

java -version
 

2.3 配置Tomcat

2.3.1 创建tomcat目录

mkdir /usr/tomcat
 

2.3.2 解压

tar -xf apache-tomcat-9.0.0.M13.tar.gz
mv apache-tomcat-9.0.0.M13 /usr/tomcat/
 

2.3.3 配置环境变量

vim /usr/tomcat/apache-tomcat-9.0.0.M13/bin/setenv.sh
 

输入如下配置

JAVA_HOME=/usr/java/jdk1.8.0_111
JRE_HOME=${JAVA_HOME}/jre
CATALINA_HOME=/usr/tomcat/apache-tomcat-9.0.0.M13
CATALINA_BASE=${CATALINA_HOME}
JAVA_OPTS='-server -Xms2048m -Xmx4096m -Xss512k'
 

环境变量配置请参考以下命令输出的内容:

grep '^#' /usr/tomcat/apache-tomcat-9.0.0.M13/bin/catalina.sh
 

2.3.4 解压daemon工具包

tar -xf /usr/tomcat/apache-tomcat-9.0.0.M13/bin/commons-daemon-native.tar.gz
 

2.3.5 编译daemon工具包

cd /usr/tomcat/apache-tomcat-9.0.0.M13/bin/commons-daemon-1.0.15-native-src/unix/
./configure
make
 

2.3.6 配置daemon运行环境

cp jsvc /usr/tomcat/apache-tomcat-9.0.0.M13/bin/
useradd -M -d /usr/tomcat/apache-tomcat-9.0.0.M13/ -s /sbin/nologin tomcat
chown -R tomcat: /usr/tomcat/apache-tomcat-9.0.0.M13
 

2.3.7 手动测试服务启停

sudo -u tomcat /usr/tomcat/apache-tomcat-9.0.0.M13/bin/daemon.sh start
sudo -u tomcat /usr/tomcat/apache-tomcat-9.0.0.M13/bin/daemon.sh stop
 

确认服务正常启动与关闭:

netstat -antp
 

浏览器测试确认:

http://10.168.0.157:8080/

2.3.8 启动服务与配置服务开机启动

In CentOS 6

ln -s /usr/tomcat/apache-tomcat-9.0.0.M13/bin/daemon.sh /etc/init.d/tomcat9
/etc/init.d/tomcat9 start
vim /etc/init.d/tomcat9
 

第二行加入如下内容:

# chkconfig: 2345 55 25
 

配置服务自启动:

chkconfig tomcat9 on
 

In CentOS 7

vim /lib/systemd/system/tomcat9.service
 

输入如下内容:

[Unit]
Description=seafile
After=network.target [Service]
Type=forking
ExecStart=/usr/tomcat/apache-tomcat-9.0.0.M13/bin/daemon.sh start
ExecReload=/usr/tomcat/apache-tomcat-9.0.0.M13/bin/daemon.sh restart
ExecStop=/usr/tomcat/apache-tomcat-9.0.0.M13/bin/daemon.sh stop
PrivateTmp=true [Install]
WantedBy=multi-user.target
 

测试服务运行

systemctl start tomcat9.service
systemctl restart tomcat9.service
systemctl stop tomcat9.service
 

配置服务自启动

systemctl enable tomcat9.service
 

===============================================================

Tomcat以Daemon的方式启动(CentOS6&7)的更多相关文章

  1. 如何在开机时让Tomcat以进程的方式启动

    一. 安装tomcat服务 1. 打开cmd命令窗口,进入到"tomcat安装路径/bin"目录下,运行"service.bat install"命令,安装to ...

  2. 以服务方式启动tomcat无法访问NFS共享盘

    用startup.bat方式启动tomcat,程序的可以访问NFS共享盘的文件.但用 1).以服务的方式启动tomcat 2).或者用windows的任务计划去执行startup.bat的方式启动to ...

  3. 启动Tomcat的几种方式

    启动Tomcat有两种场景,一是部署时启动,二是开发时启动.部署时基本上是通过war包来启动,而开发时的启动方式多种多样,下面拟介绍几种适用于开发时启动Tomcat的方法. 在DOS命令行启动 Apa ...

  4. CentOS以守护进程的方式启动程序的另类用法daemon

    在Linux下如果以守护进程的方式启动程序,也就是后台运行,有几种方式,比如后面带&&,nuhop,那么在CentOS下可以使用daemon这个函数来启动,比如: daemon --p ...

  5. windows系统bat方式启动tomcat出现java.lang.OutOfmemoryError:PermGen Space 错误

    1.问题情景: 在部署项目时,将两个应用部署到同一个tomcat下,通过startup.bat启动服务时,控制台出现出现java.lang.OutOfmemoryError:PermGen Space ...

  6. idea中使用tomcat 方式启动spring boot项目

    Spring boot 的main 入口启动方式相信都会用,直接运行main直接就启动了,但是往往这种方式并不是最佳的启动方式,比如运维的层面更希望调整tomcat的调优参数,而只使用嵌入启动方式很难 ...

  7. Mongodb后台daemon方式启动

    Mongodb可以通过命令行方式和配置文件的方式来启动,具体命令如下: 命令行: [root@localhost mongodb]# ./bin/mongod --dbpath=/data/db 配置 ...

  8. Spring Boot移除内嵌Tomcat,使用非web方式启动

    前言:当我们使用Spring Boot编写了一个批处理应用程序,该程序只是用于后台跑批数据,此时不需要内嵌的tomcat,简化启动方式使用非web方式启动项目,步骤如下: 1.在pom.xml文件中去 ...

  9. 【翻译】Tomcat 6.0 安装与启动

    本篇来自Tomcat6官方文档:运行手册running.txt 有很多以前都没注意的问题,这里正好学习下. 系列文章来自:<Tomcat官方文档翻译> Tomcat的安装 1 确认本机是否 ...

随机推荐

  1. div height 自适应高度 占满剩余高度的方法

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. IDEA的安装

    https://blog.csdn.net/when_to_return/article/details/81590356

  3. __c语言__整型、实型的存储(十进制转二进制)

    float 和 double 类型数据在内存中的存储方法 无符号整型采用32位编码,带符号整型数采用1个符号位31位底数编码: 单精度数据采用了1位符号位,8位阶码,23位尾数的编码: 双精度数据采用 ...

  4. 如何修改IE浏览器的User-Agent用户代理字符串信息

    每款浏览器都有一个专属的 User-Agent 字符串信息, 通过 User-Agent 网站可以检测用户所使用的浏览器版本.某些网站为了让用户获得更好的浏览体验,通过检测用户的浏览器版本,以确认用户 ...

  5. 修复恢复"可疑"的SQLServer数据库

    今天机房突然断电,DB连不上了,提示 无法打开数据库'MyDB'.恢复操作已将该数据库标记为 SUSPECT. 原因是断电导致DB文件损坏 通过SQL Server Management Studio ...

  6. Java全栈程序员之06:IDEA中MAVEN项目依赖及运行

    MAVEN已经成为事实上的企业项目开发中的项目类型.无论是IDEA还是Eclipse,都已经默认支持创建MAVEN项目.严格意义上来说,MAVEN不是一种新的JavaEE项目类型.它凌驾于所以的项目类 ...

  7. double compare 0

    因为double类型或float类型都是有精度的,其实都是取的近似值,所以有个误差.和一个很小的数比如0.00000001(1e-8)比较就是为了在这个误差范围内进行比较. 举个例子如double b ...

  8. 解决Android Studio出现GC overhead limit exceeded

    方法一: 修改项目目录下的gradle.properties,增加如下配置信息(红色文字中需要根据自己电脑的配置修改内存大小,其余的配置用于加快gradle的编译速度) org.gradle.daem ...

  9. 【ASP.NET Core】EF Core - “影子属性”

    有朋友说老周近来博客更新较慢,确实有些慢,因为有些 bug 要研究,另外就是老周把部分内容转到直播上面,所以写博客的内容减少了一点. 老周觉得,视频直播可能会好一些,虽然我的水平一般,不过直播时,老周 ...

  10. 如何用Python计算Softmax?

    Softmax函数,或称归一化指数函数,它能将一个含任意实数的K维向量z"压缩"到另一个K维实向量\(\sigma{(z)}\)中,使得每一个元素的范围都在(0,1)之间,并且所有 ...