看《深入剖析tomcat》一书学习到的

本文探讨了如何让程序在Linux和Windows环境下作为后台服务运行,重点介绍了Tomcat通过设置daemon属性实现后台运行的方法,并对比了Java中的setDaemon()方法与Apache Commons Daemon项目的区别与应用。
今天在看《深入剖析tomcat》一书(pdf),目的是了解一下tomcat的内部实现原理。在看书的时候无意中在网上找到了tomcat的配置文件相关的官方文档: https://tomcat.apache.org/tomcat-7.0-doc/config/ 这个文档主要讲解的是tomcat的一些配置参数。
 
在看的时候无意中看到了一个commons deamon组件: http://commons.apache.org/proper/commons-daemon/ 这个组件的主要作用是能够将你的程序作为后台程序运行。
 
后来我就想,我们平时写的程序在linux上通过java 命令启动之后,如果我把控制台关掉,那么程序就会结束运行,如何让程序在我们将控制台关掉之后仍然能够运行呢?我们采用的办法一般都是在启动命令的最后添加一个“&”符号,这样就能保证我们把控制台输出关闭的时候,程序仍然能够运行。
后来想了想,为什么tomcat也可以呢?为此我看了一个tomcat的启动文件,catalina.sh,发现它也是这样做的:
 
这是在Linux下,但是如果在windows下呢?如何让程序在后台运行?
 
思路:将程序注册成windows服务。
看了一下tomcat 在windows下也是这样的,即在windows下,我们如果想让tomcat在后台运行,需要执行其bin目录下的service.bat文件,通过service install命令,将其注册成为服务
 
但我仍然存在疑问:
1、java里面的 setDeamon()不可以实现后台服务么?
2、tomcat文档里推荐的commons deamon项目又是干嘛的呢?
待解决
 
 
 

转载于:https://www.cnblogs.com/medusaultimate/p/4404778.html

《深入剖析Tomcat(中文版+英文版)》.rar 《深入剖析Tomcat》深入剖析Tomcat 4和Tomcat 5中的每个组件(如果TOMCAT版本有点老,不过现在的Tomcat6和7同样可以借鉴参考),并揭示其内部工作原理。通过学习《深入剖析Tomcat》,你将可以自行开发Tomcat组件,或者扩展已有的组件。 Tomcat是目前比较流行的Web服务器之。作为个开源和小型的轻量级应用服务器,Tomcat 易于使用,便于部署,但Tomcat本身是个非常复杂的系统,包含了很多功能模块。这些功能模块构成了Tomcat的核心结构。《深入剖析Tomcat》从最基本的HTTP请求开始,直至使用JMX技术管理Tomcat中的应用程序,逐剖析Tomcat的基本功能模块,并配以示例代码,使读者可以逐步实现自己的Web服务器。 目录 第1章 个简单的web服务器 1.1 http 1.1.1 http请求 1.1.2 http响应 1.2 socket类 1.3 应用程序 1.3.1 httpserver类 1.3.2 request类 1.3.3 response类 1.3.4 运行应用程序 1.4 小结 第2章 个简单的servlet容器 2.1 javax.servlet.servlet接口 2.2 应用程序 2.2.1 httpserver1类 2.2.2 request类 2.2.3 response类 2.2.4 staticresourceprocessor类 2.2.5 servletprocessor1类 2.2.6 运行应用程序 2.3 应用程序 2.4 小结 第3章 连接器 3.1 stringmanager类 3.2 应用程序 3.2.1 启动应用程序 3.2.2 httpconnector类 3.2.3 创建httprequest对象 3.2.4 创建httpresponse对象 3.2.5 静态资源处理器和servlet处理器 3.2.6 运行应用程序 3.3 小结 第4章 tomcat的默认连接器 4.1 http 1.1的新特性 4.1.1 持久连接 4.1.2 块编码 4.1.3 状态码100的使用 4.2 connector接口 4.3 httpconnector类 4.3.1 创建服务器套接字 4.3.2 维护httpprocessor实例 4.3.3 提供http请求服务 4.4 httpprocessor类 4.5 request对象 4.6 response对象 4.7 处理请求 4.7.1 解析连接 4.7.2 解析请求 4.7.3 解析请求头 4.8 简单的container应用程序 4.9 小结 第5章 servlet容器 5.1 container接口 5.2 管道任务 5.2.1 pipeline接口 5.2.2 valve接口 5.2.3 valvecontext接口 5.2.4 contained接口 5.3 wrapper接口 5.4 context接口 5.5 wrapper应用程序 5.5.1 ex05.pyrmont.core.simpleloader类 5.5.2 ex05.pyrmont.core.simplepipeline类 5.5.3 ex05.pyrmont.core.simplewrapper类 5.5.4 ex05.pyrmont.core.simplewrappervalve类 5.5.5 ex05.pyrmont.valves.clientiploggervalve类 5.5.6 ex05.pyrmont.valves.headerloggervalve类 5.5.7 ex05.pyrmont.startup.bootstrap1 5.5.8 运行应用程序 5.6 context应用程序 5.6.1 ex05.pyrmont.core.simplecontextvalve类 5.6.2 ex05.pyrmont.core.simplecontextmapper类 5.6.3 ex05.pyrmont.core.simplecontext类 5.6.4 ex05.pyrmont.startup.bootstrap 5.6.5 运行应用程序 5.7 小结 第6章 生命周期 第7章 日志记录器 第8章 载入器 第9章 session管理 第10章 安全性 第11章 standardwrapper 第12章 standardcontext类 第13章 host和engine 第14章 服务器组件和服务组件 第15章 digester库 第16章 关闭钩子 第17章 启动tomcat 第18章 部署器 第19章 manager应用程序的servlet类
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值