Linux下配置Tomcat允许指定身份用户管理服务

简介:

cd到tomcat的bin目录下,并解压commons-daemon-native.tar.gz:

cd /opt/tomcat/bin/
tar xvzf commons-daemon-native.tar.gz

解压后会生成一个commons-daemon-1.0.10-native-src目录,cd到这个目录的unix子目录:

cd commons-daemon-1.0.10-native-src/unix

(1). 执行编译配置:

1 ./configure #(注意:需要先安装好make,gcc等编译工具)

在执行时可能会出现如下错误提示:

...
*** Java compilation tools ***
checking for JDK location... configure: error: Java Home not defined. Rerun with --with-java=... parameter

这是由于没有指定jdk目录所致的,那么按提示指定with-java参数(指向jdk目录)。如下:

./configure--with-java=/opt/jdk

运行完成后会提示如下信息说明操作成功:

...
*** All done ***
Now you can issue "make"

执行make:

make

(2). 执行make后会生成一个jsvc的文件,将其复制到tomcat的bin目录。

在tomcat/bin目录里面有一个daemon.sh 这个文件就是启动和关闭tomcat的服务守候程序。

注意:之前的一些tomcat版本,例如tomcat 6.0.x, 可能没有这个文件, 其实这个文件就是放在commons-daemon-x.x.x-native-src/unix/samples/Tomcat7.sh这儿的(此目录还有一个Tomcat5.sh),只不过新版本的tomcat把它移动到了bin目录下,并取名为daemon.sh了。所以,如果您使用的是tomcat 6,那就把这个Tomcat7.sh文件复制到bin目录下,并取名为daemon.sh即可。

(3). 修改daemon环境变量 :

用文本编辑器(vi或emacs等)编辑它,找到类似下面这样配置段:

test ".$TOMCAT_USER" = . && TOMCAT_USER=tomcat
# Set JAVA_HOME to working JDK or JRE
# JAVA_HOME=/opt/jdk-1.6.0.22

修改TOMCAT_USER=tomcat为您要指定身份运行的linux账号用户名,此处指定用户名为tomcat。

并把JAVA_HOME=...前面的注释(即“#”号)去掉,并设置为jdk的安装目录路径,最后,修改好后的配置段变成如下:

test ".$TOMCAT_USER" = . && TOMCAT_USER=tomcat
# Set JAVA_HOME to working JDK or JRE
JAVA_HOME=/opt/jdk

现在修改/opt/tomcat目录的所有者为为tomcat(即您要指定身份运行的linux帐号):

chown-R tomcat:tomcat/opt/tomcat

为tomcat/bin/目录下的*.sh添加相应的x权限位:

chmoda+x/opt/tomcat/bin/*.sh

现在,可以测试一下daemon是否可以启动运行,启动方式如下:

/opt/tomcat/bin/daemon.sh  start

(如果出错,重点查验tomcat的bin目录下的*.sh是否有x可执行权限、linux帐号是否有tomcat目录的读写权限,是否有tomcat/logs日志目录的写权限等等。)如无错误,则tomcat的daemon守候程序已经设置成功了,可以访问http://localhost:8080/试一下服务是否启动。

停止tomcat, 对应的命令为:

/opt/tomcat/bin/daemon.sh  stop

四、添加tomcat为debian的服务

在上面的配置正确后,要将daemon.sh添加成为debian的服务就非常简单了,只需要创建一个软链到/etc/init.d/目录中即可:

ln -s /opt/tomcat/bin/daemon.sh /etc/init.d/tomcat7

这样就创建了一个名为tomcat7的服务。

现在就可以用它启动/关闭tomcat了:

启动tomcat7服务:

/etc/init.d/tomcat7 start

停止tomcat7服务:

/etc/init.d/tomcat7 stop

最后,再查看一下进程, 已经可以看到,tomcat是以指定的用户身份运行了。

五、设置tomcat服务开机启动

如果您想让Tomcat的daemon守候程序在开机后自动运行,只需运行下面命令,将服务设置为自启动即可:

update-rc.d tomcat7 defaults

如果以后想想取消自动启动,则运行:

update-rc.d tomcat7 remove

以上内容为《配置tomcat以指定的身份运行》的全文笔记,本人在Debian系统下成功配置。

上面的配置过程,本人未对tomcat的配置文件(conf/server.xml)进行任何修改。

如果大家想再创建一个tomcat服务,只需要将/opt/tomcat这个目录复制一份,例如:

cp/opt/tomcat/opt/tomcat1

再修改一下tomcat1的端口号(/opt/tomcat/opt/tomcat1/conf/server.xml中的端口号不能与其它的服务重复)

最后从上面所述第四步开始,创建另一个服务即可。

通过这种方式,您就可以为一台Linux服务器创建任意多个tomcat服务了。最后只需要安装一个前端服务器(例如Nginx或Apache),将不同域名的请求转发到不同的tomcat服务程序就可以了。

如果您使用的是其它发行版的Linux,配置方式大同小异。

本文转自奔跑在路上博客51CTO博客,原文链接http://blog.51cto.com/qiangsh/1834722如需转载请自行联系原作者


qianghong000

相关文章
|
1月前
|
Linux 应用服务中间件 Shell
linux系统服务二!
本文详细介绍了Linux系统的启动流程,包括CentOS 7的具体启动步骤,从BIOS自检到加载内核、启动systemd程序等。同时,文章还对比了CentOS 6和CentOS 7的启动流程,分析了启动过程中的耗时情况。接着,文章讲解了Linux的运行级别及其管理命令,systemd的基本概念、优势及常用命令,并提供了自定义systemd启动文件的示例。最后,文章介绍了单用户模式和救援模式的使用方法,包括如何找回忘记的密码和修复启动故障。
45 5
linux系统服务二!
|
1月前
|
Linux 应用服务中间件 Shell
linux系统服务!!!
本文详细介绍了Linux系统(以CentOS7为例)的启动流程,包括BIOS自检、读取MBR信息、加载Grub菜单、加载内核及驱动程序、启动systemd程序加载必要文件等五个主要步骤。同时,文章还对比了CentOS6和CentOS7的启动流程图,并分析了启动流程的耗时。此外,文中还讲解了Linux的运行级别、systemd的基本概念及其优势,以及如何使用systemd管理服务。最后,文章提供了单用户模式和救援模式的实战案例,帮助读者理解如何在系统启动出现问题时进行修复。
47 3
linux系统服务!!!
|
22天前
|
数据库连接 Linux Shell
Linux下ODBC与 南大通用GBase 8s数据库的无缝连接配置指南
本文详细介绍在Linux系统下配置GBase 8s数据库ODBC的过程,涵盖环境变量设置、ODBC配置文件编辑及连接测试等步骤。首先配置数据库环境变量如GBASEDBTDIR、PATH等,接着修改odbcinst.ini和odbc.ini文件,指定驱动路径、数据库名称等信息,最后通过catalog.c工具或isql命令验证ODBC连接是否成功。
|
1月前
|
缓存 资源调度 安全
深入探索Linux操作系统的心脏——内核配置与优化####
本文作为一篇技术性深度解析文章,旨在引领读者踏上一场揭秘Linux内核配置与优化的奇妙之旅。不同于传统的摘要概述,本文将以实战为导向,直接跳入核心内容,探讨如何通过精细调整内核参数来提升系统性能、增强安全性及实现资源高效利用。从基础概念到高级技巧,逐步揭示那些隐藏在命令行背后的强大功能,为系统管理员和高级用户打开一扇通往极致性能与定制化体验的大门。 --- ###
65 9
|
1月前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
43 5
|
1月前
|
Linux 数据库
Linux服务如何实现服务器重启后的服务延迟自启动?
【10月更文挑战第25天】Linux服务如何实现服务器重启后的服务延迟自启动?
250 3
|
1月前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
110 3
|
2月前
|
Java Linux 网络安全
NIFI在Linux服务区上的部署配置过程是什么?
【10月更文挑战第21天】NIFI在Linux服务区上的部署配置过程是什么?
70 2
|
2月前
|
Ubuntu Linux 编译器
Linux/Ubuntu下使用VS Code配置C/C++项目环境调用OpenCV
通过以上步骤,您已经成功在Ubuntu系统下的VS Code中配置了C/C++项目环境,并能够调用OpenCV库进行开发。请确保每一步都按照您的系统实际情况进行适当调整。
496 3
|
2月前
|
监控 安全 网络协议
快速配置Linux云服务器
【10月更文挑战第3天】快速配置Linux云服务器
下一篇
DataWorks