标签:
杂谈 |
错误信息:
严重: StandardServer.await: create[8005]:
java.net.BindException: Address already in use: JVM_Bind
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:359)
at java.net.ServerSocket.bind(ServerSocket.java:319)
at java.net.ServerSocket.<init>(ServerSocket.java:185)
at org.apache.catalina.core.StandardServer.await(StandardServer.java:373)
at org.apache.catalina.startup.Catalina.await(Catalina.java:630)
at org.apache.catalina.startup.Catalina.start(Catalina.java:590)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
1.独立运行的tomcat.exe没有关闭,关闭tomcat图标并结束掉tomcat进程。
2.安装了其他的软件占用了8080端口,tomcat安装默认的端口是8080,解决方案一,更改tomcat的端口,用editplus或者写字板打开conf\service.xml:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
更改8080为其他端口号
或者 打开cmd命令提示符,输入 netstat -ano 找到8080端口占用的pid号 输入taskkill /pid xxxx xxxx为PID号。关闭这个占用端口即可
在给客户装完系统配置好环境后,启动Tomcat6后报错“ StandardServer.await: create[8005]java.net.BindException: Address already in use: JVM_Bind”,原来是Tomcat8005端口被其他进程占用,8005端口是用来关闭TOMCAT服务的端口,解决的方法如下
1.方法一,修改tomcat/conf/server.xml文件
打开server.xml
将<Server port="8005" shutdown="SHUTDOWN">中8005改成不常用的端口号即可,比如8088
2.方法二,将占用8005的进程强行结束
(1) 在“运行”中输入CMD
(2)在启动的窗口中输入netstat -ano,就可以看到所有端口占用的情况,记下占用8005端口的程序的PID
(3)打开“任务管理器”,点击菜单栏的“查看”,再点击“选择列”,选上“PID(进程标识符)”或者用tasklist命令查看
(4)在进程中找个相应的PID值,结束进程即可
杀死进程最安全的方法是单纯使用kill命令,不加修饰符,不带标志。
首先使用ps -ef命令确定要杀死进程的PID,然后输入以下命令:
# kill -pid
注释:标准的kill命令通常都能达到目的。终止有问题的进程,并把进程的资源释放给系统。然而,如果进程启动了子进程,只杀死父进程,子进程仍在运行,因此仍消耗资源。为了防止这些所谓的“僵尸进程”,应确保在杀死父进程之前,先杀死其所有的子进程。
确定要杀死进程的PID或PPID
# ps -ef | grep httpd
以优雅的方式结束进程
# kill -l PID
-l选项告诉kill命令用好像启动进程的用户已注销的方式结束进程。当使用该选项时,kill命令也试图杀死所留下的子进程。但这个命令也不是总能成功--或许仍然需要先手工杀死子进程,然后再杀死父进程。
TERM信号
给父进程发送一个TERM信号,试图杀死它和它的子进程。
# kill -TERM PPID
killall命令
killall命令杀死同一进程组内的所有进程。其允许指定要终止的进程的名称,而非PID。
# killall httpd
停止和重启进程
有时候只想简单的停止和重启进程。如下:
# kill -HUP PID
该命令让Linux和缓的执行进程关闭,然后立即重启。在配置应用程序的时候,这个命令很方便,在对配置文件修改后需要重启进程时就可以执行此命令。
绝杀 kill -9 PID
同意的 kill -s SIGKILL
这个强大和危险的命令迫使进程在运行时突然终止,进程在结束后不能自我清理。危害是导致系统资源无法正常释放,一般不推荐使用,除非其他办法都无效。
当使用此命令时,一定要通过ps -ef确认没有剩下任何僵尸进程。只能通过终止父进程来消除僵尸进程。如果僵尸进程被init收养,问题就比较严重了。杀死init进程意味着关闭系统。
如果系统中有僵尸进程,并且其父进程是init,而且僵尸进程占用了大量的系统资源,那么就需要在某个时候重启机器以清除进程表了。
相关推荐
Apache Tomcat 9.0.54 是一个流行的开源Java Servlet容器,用于部署和运行Java Web应用程序。这个压缩包文件 "apache-tomcat-9.0.54-embed.tar.gz" 包含了可嵌入式的Tomcat版本,这意味着它可以在不依赖独立服务器的...
信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jdk1.6.0_10\bin;C:\Program ...
【Apache Tomcat 9.0.0.M1 源码分析】 Apache Tomcat是一款开源的、免费的Java Servlet容器,它实现了Java EE Web应用程序的Servlet和JSP规范。源码包“apache-tomcat-9.0.0.M1-src”提供了Tomcat的核心源代码,供...
### Tomcat原理解析 #### 一、Tomcat加载与启动流程详解 ##### 加载流程概述 Apache Tomcat是一款开源的轻量级Servlet容器,它实现了Servlet和JavaServer Pages(JSP)技术规范,能够作为Web服务器来处理HTTP请求...
【标题】:“Tomcat 7 源码分析 - 4 server初始化背后getServer().init()” 在这篇文章中,我们将深入探讨Apache Tomcat 7服务器的内部工作机制,重点关注`getServer().init()`方法在服务器初始化过程中的作用。...
Apache Tomcat 6.0.18 是一个广泛使用的开源软件,它是一个实现了Java Servlet和JavaServer Pages(JSP)规范的应用服务器。Tomcat以其轻量级、高效和易用性而闻名,它是Apache软件基金会的项目之一。在这个源码版本...
Apache Tomcat是一款广泛应用的开源Java Servlet容器,它实现了Java EE Web应用服务器的Servlet和JSP规范。本资源是Apache Tomcat 8.5.100版本的源代码,对于理解Tomcat的工作原理、进行定制化开发或者优化性能具有...
《Tomcat-server.xml配置详解》 Tomcat作为一款广泛应用的Java EE服务器,其核心配置文件`tomcat-server.xml`对于优化服务器性能、管理和监控服务至关重要。本文将详细解析`tomcat-server.xml`中的主要元素和属性,...
### Tomcat7源码手撕过程详解 #### Tomcat初始化流程分析 Tomcat是一个流行的Java Servlet容器,用于部署和运行Web应用程序。理解Tomcat的工作原理对于优化应用性能、解决部署问题至关重要。以下是对Tomcat7启动...
====================research the source about apache-tomcat-7.0.57====================/org/apache/catalina/startup/Bootstrap---2014/11/28/org/apache/catalina/startup/Catalina---2014/11/28当Bootstrap...
Apache Tomcat 6是一款广泛应用的开源Java Servlet容器,它实现了Java EE中的Servlet和JSP规范。源码分析有助于深入理解其...同时,如果你遇到Tomcat的使用问题或者想要进行定制化开发,源码分析将提供直接的解决方案。
Tomcat Server.xml 配置说明 Tomcat Server.xml 文件是 Tomcat 服务器的核心配置文件,它定义了 Tomcat 服务器的整体结构和行为。在这个文件中,我们可以定义 Server、Service、Engine、Host 等元素,这些元素共同...
在IT行业中,嵌入式Tomcat是一个非常重要的概念,它主要应用于那些需要在有限资源的设备上运行Java Web应用程序的场景。嵌入式Tomcat允许开发者将Tomcat服务器集成到他们的应用中,而不是作为一个独立的服务运行。这...
### Tomcat 启动流程详解 #### 一、概述 Apache Tomcat 是一款开源的Servlet容器,它能够作为Web服务器独立运行,也可以与Apache等其他Web服务器配合使用。Tomcat支持最新的Servlet 和 JSP 规范,由于其简单性和可...
Apache Tomcat 7.0.57 是一个广泛使用的开源软件,它是一个实现了Java Servlet、JavaServer Pages(JSP)和Java EE的Web应用程序容器。这个版本的源代码包(src)是为开发者设计的,提供了深入理解Tomcat工作原理的...
Tomcat启动流程分析 组件的生命周期管理 用Lifecycle管理启动、停止、关闭 Lifecycle接口预览 几个核心方法 Server中的init方法示例 为啥StandardServer没有init方法 LifecycleBase中的init与...
### Tomcat配置详解 #### 一、`<Server>`元素 `<Server>`元素作为Tomcat实例的顶级配置节点,负责定义整个Tomcat容器的基本结构和功能。此元素由`org.apache.catalina.Server`接口定义,并且在配置文件中只能出现...
**Apache Tomcat 8源代码解析** Apache Tomcat是一款开源的Java Servlet容器,它实现了Java Servlet和JavaServer Pages(JSP)规范,是许多Web应用开发者的重要工具。Tomcat 8是其发展的一个重要版本,引入了许多新...
在深入探讨Tomcat源码之前,我们先了解一下Tomcat是什么。Tomcat是一款开源的Java Servlet容器,由Apache软件基金会开发,它实现了Java EE中的Web应用服务器部分,特别是Servlet和JavaServer Pages (JSP)规范。《How...
【标题】"Tomcat 8.0源码分析" 【正文】 Tomcat 8.0是Apache软件基金会的开源项目,是一个广泛使用的Java Servlet容器,实现了Java Servlet和JavaServer Pages(JSP)规范,用于部署和运行Web应用程序。源码分析...