tomcat jsvc java_opts_Tomcat 学习笔记(2) - 使用 jsvc 启动tomcat

jsvc 是个什么是么高端武器呢

全称:Java Service

还是没有弄明白是什么,那就继续往下看。

我们赞不讨论 tomcat 应不应该运行在80端口上。

假如我们有需求,需要 tomcat 运行在 80 端口上。

那么一个限制就出现了。*nix操作系统只用root权限才能监听1024已下的端口。

虽然我们可以让 tomcat 启动后 以 tomcat用户的权限工作。这样安全性就可以得到保障。

但是还有更强的方案。他就是 jsvc 当然 jsvc 可不仅仅就这么一点功能。

我们通过 jsvc 可以很简单的 封装我们自己的 启动脚本,

还可以 随意制定 tomcat 运行用户和组,还可以指定 jvm 的运行参数例如内存控制,语言,字符编码。

我们还可以指定 tomcat 启动是的 pidfile 总之我们可以更精细的控制tomcat的运行方式。比原始脚本拥有无法比拟的优势。

既然 jsvc 的有点有那么多。那到底怎么做呢。

jsvc是一套用c编写的程序,是tomcat发行版自带的一套代码。是Jakarta Commons Daemon 工程的一个复制品。只有该版本的jsvc是绑定到tomcat二进制发行版中。这意味着它要与该版本的Tomcat一同使用。

在 tomcat 8.0 版本中 jsvc 的源代码包 tomcat/bin/commons-daemon-native.tar.gz

我们找到该tar包,准备编译成二进制文件

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

$ cd commons-daemon-1.0.15-native-src

$ ./configure --with-java=$JAVA_HOME

$ make

编译完成以后,会产生一个jsvc的二进制可执行文件

$ ./jsvc --help

Usage: jsvc [-options] class [args...]

Where options include:

-help | --help | -?

show this help page (implies -nodetach)

-jvm

use a specific Java Virtual Machine. Available JVMs:

'server'

-client

use a client Java Virtual Machine.

-nodetach

don't detach from parent process and become a daemon

-debug

verbosely print debugging information

-check

only check service (implies -nodetach)

-user

user used to run the daemon (defaults to current user)

-verbose[:class|gc|jni]

enable verbose output

-cwd

set working directory to given location (defaults to /)

........

........

jsvc (Apache Commons Daemon) 1.0.15-dev

Copyright (c) 1999-2013 Apache Software Foundation.

相信看到 现象以后大家大概已猜出jsvc到底是干什么的了。对他就是tomcat的守护进程管理工具

怎么使用呢?

如果你的 tomcat 还在运行那么他大概会是这样的

$ ps auwx | grep java

/usr/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/usr/local/tomcat/endorsed -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start

我们想换做 jsvc 管理的话,只需要将 java 换成jsvc就可以了

$ ./jsvc -user tomcat -pidfile /var/run/jsvc.pid -Djvm=tomcat -Xmx50M -Xms50M -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/usr/local/tomcat/endorsed -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start

我指定了 tomcat 运行的用户身份是tomcat用户指定了pidfile在/var/run/jsvc.pid同时限制了tomcat运行的内存限制

小伙伴们看到这儿了。就不用我多说了。有了 jsvc tomcat 控制tomcat就完全不在话下了。

可能小伙伴么已经发现了 jsvc 的 -stop 选项。对的,jsvc 可以关闭tomcat.也很简单

$ ./jsvc -stop -pidfile /var/run/jsvc.pid org.apache.catalina.startup.Bootstrap stop

有趣的是 最后的 stop 不加 也可以正常停止 tomcat

你可以这么理解。应为我们使用了jsvc -stop 选项 关闭 tomcat,此时完全不需要再多余指定一个 stop 参数了。

到这里 小伙伴们 应该 对tomcat更有把握了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/513456.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python 元类 type_python Class:面向对象高级编程 元类:type

type的用法:1、普通的type用法:检查类型class my(object):def hello(self, nameworld):print(Hello, %s. % name)h my()print(type(my))print(type(h))运行结果:my是class, 所以它的类型是type,h是class的实例,所以它的类型是cla…

配置审计(Config)变配报警设置

简介: 本文作者【紫极zj】,本篇将主要介绍通过配置审计的自定义规则等服务,对负载均衡进行预警行为的相关介绍。 前言 配置审计(Config)将您分散在各地域的资源整合为全局资源列表,可便捷地搜索全局资源&…

漫画:什么是 “元宇宙” ?

作者|小灰来源|程序员小灰什么是更高的自由度呢?或许有人觉得,我们在网络游戏当中,不是也很自由吗?想怎么玩就怎么玩。但是,无论一款网络游戏的元素有多么丰富,游戏当中的角色、任务、职业、道具、场景&…

程序员写好技术文章的几点小技巧

简介: 去年成为了内网技术分享平台的年度作者,受邀写一篇关于“如何写好文章”的文章。我本身并不喜欢写字,去年写的几篇文章,涉及的话题自带流量,所以阅读量多了一些,谈不上有多擅长。不过还是决定分享一下…

js传中文参数 java取_js中文转码传输java后台 适用于用url传递中文参数

第一种方法: 解决方法如下: 1、在JS里对中文参数进行两次转码 var login_name document.getElementById("loginname").value;login_name encodeURI(login_name);login_name encodeURI(login_name);2、在服务器端对参数进行解码 String logi…

python信用卡违约预测分析_Python数据分析及可视化实例之银行信用卡违约预测(24)...

1.项目背景:银行体系对于信用可违约进行预测,原始数据集如下:2.分析步骤:(1)数据清洗(Data Cleaning)(2) 探索性可视化(Exploratory Visualization)(3) 特征工程(Feature Engineering)(4)基本建模&评估(Basic Modeling& E…

雅虎、领英接连退出中国,GitHub 会受到影响吗?

整理 | 郑丽媛出品 | CSDN(ID:CSDNnews)继半个月前微软宣布关闭领英(即 LinkedIn)在华业务后,本周二,雅虎也宣布了最新消息:自 2021 年 11 月 1 日起,用户将无法从中国大…

高德打车构建可观测性系统实践

简介: 互联网工程的高速发展,分布式、微服务、容器化架构的流行,互联网已全面进入云原生时代。构建系统的方式由最初的单体大应用演变为分布式架构,一台服务器可能仅存几小时甚至几分钟,这种复杂性大大增加了把系统运行…

java script 代码放在jsp 还是放在servlet_ServletContext JSP

会话:四种:1 :Session–保存在服务器上默认的30分2:Cookie 客户端的,maxAge3:重写 url - > url;jsessionidxxxxxxx - > response.encodeRedirectUri(url);4:隐藏表单 1:Serv…

飞猪基于 Serverless 的云+端实践与思考

简介: 过去两年,飞猪前端一直在积极地进行 Serverless 建设和实践,2019 年 - 2020 年我们和集团 Node 架构组、研发平台一起完成了基础能力的建设和业务试点,成为集团率先落地 Serverless 实践的 BU,2020 年 - 2021 年…

unc 目录不受支持_Shopify平台对于店铺模版都提供哪些支持

在自定义Shopify模版之前,请确保您了解可用的支持级别。如果您要进行基本的自定义,则可以从模版开发人员处获取支持。如果您要对模版进行大量更改,请参阅我们的模版支持的其他资源列表。若要了解 Shopify 不支持的自定义,请参阅我…

CSS——定位、CSS高级技巧、修饰属性

1、定位 作用&#xff1a;灵活的改变盒子在网页中的位置 实现&#xff1a; 定位模式&#xff1a;position边偏移&#xff1a;设置盒子的位置 leftrighttopbottom 1.1 相对定位 position&#xff1a;relative <!DOCTYPE html> <html lang"en"> <…

数百万行自研代码都捐了,华为将欧拉捐赠给开放原子开源基金会

今天&#xff0c;操作系统产业峰会2021在北京国家会议中心线上线下同步举办。会上&#xff0c;华为携手社区全体伙伴共同将欧拉开源操作系统&#xff08;openEuler, 简称“欧拉”&#xff09;正式捐赠给开放原子开源基金会。这标志着欧拉从创始企业主导的开源项目演进到产业共建…

Hologres如何支持亿级用户UV计算

简介&#xff1a; 本文将介绍阿里云Hologres如何基于RoaringBitmap进行UV等高复杂度计算的方案&#xff0c;实现亿级用户万级标签亚秒级分析&#xff0c;帮助用户从Kylin平滑迁移到Hologres&#xff0c;实现更实时、开发更灵活、功能更完善的多维分析能力。 背景介绍 在用户行…

location 拦截所有_电脑广告拦截软件 Adguard Premium

每日一谈我们上个网的时候经常会遇到很多烦人的广告、在线跟踪等&#xff0c;不仅导致你的网站加载速度非常的慢&#xff0c;并且还可能会导致你遇到一些恶意软件和威胁。为了避免这种情况的产生&#xff0c;今天我为大家推荐这款广告拦截软件来阻止你浏览器中的广告&#xff0…

事务消息应用场景、实现原理与项目实战(附全部源码)

简介&#xff1a; 从应用场景出发&#xff0c;给出解决方案与实现原理&#xff0c;并提供整套工业级实现源码。 作者&#xff1a;丁威 活动中心场景介绍 在电商系统上线初期&#xff0c;往往会进行一些“拉新”活动&#xff0c;例如活动部门提出新用户注册送积分、送优惠券活…

mysql 别名 metadata_获取数据库元数据:DatabaseMetaData与ParameterMetaData与ResultSetMetaData...

(1)Meta-Data&#xff1a;关于数据的数据&#xff0c;在此是有关数据库和数据库表等数据库对象的信息&#xff1b;通过Connection的getMetaData()方法获得包含数据库元数据的DatabaseMetaData对象&#xff0c;然后在此对象上调用相关的方法获得对应的信息&#xff1b;(2)Databa…

request用法_3分钟短文:说说Laravel页面会话之间的数据保存Session用法

引言我们知HTTP请求是没有状态的&#xff0c;两个请求之间没有直接的关联关系。但大多数情况下&#xff0c; 我们需要保持用户的会话间数据的连续性&#xff0c;这时&#xff0c;为了数据安全起见&#xff0c; 有必要在服务器上临时存储一些上下文数据了。这就是 session 设计的…

调研邀请:我们到底需要什么样的低代码平台?

《乔布斯传》中有这样一段话&#xff1a;“有人会说&#xff0c;顾客想要什么产品就提供什么产品&#xff0c;但这并不是我的做事方式。我的职责是在人们还没有意识到需求之前&#xff0c;就研发出他们想要的&#xff0c;我们的任务是搞定那些还没有形成“定论”的事情。”这段…

面向K8s设计误区

简介&#xff1a; K8s 取其精华去其糟粕&#xff0c;是我们程序员应该做的事情。 K8s设计模式 Kubernetes是一个具有普遍意义的容器编排工具&#xff0c;它提供了一套基于容器构建分布式系统的基础依赖&#xff0c;其意义等同于Linux在操作系统中的地位&#xff0c;可以认为是…