PID文件存在,但进程未运行

时间:2014-02-15 09:27:01

标签: linux tomcat6 pid centos6

我在centos6工作。我已经安装了tomcat6。在第一次一切正常。但重启后服务器tomcat6无法正常工作。

当我执行此命令行时:“ service tomcat6 status ” 我明白了: “存在PID文件,但进程未运行[ÉCHOUÉ] ” 我检查了日志文件“catalina.out”,我收到此错误:

GRAVE:StandardServer.await:create [8005]:

java.net.BindException: Cannot assign requested address
        at java.net.PlainSocketImpl.socketBind(Native Method)
        at java.net.PlainSocketImpl.bind(Unknown Source)
        at java.net.ServerSocket.bind(Unknown Source)
        at java.net.ServerSocket.<init>(Unknown Source)
        at org.apache.catalina.core.StandardServer.await(StandardServer.java:373)
        at org.apache.catalina.startup.Catalina.await(Catalina.java:657)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:617)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)

提前感谢您的帮助

3 个答案:

答案 0 :(得分:2)

如果在正确设置CATALINA_PID环境变量的情况下运行Tomcat的启动脚本,则Tomcat进程的PID将在启动时记录到文件中。如果在尝试启动Tomcat时该文件存在,则脚本将拒绝运行,因为它不想破坏(可能有效的)PID文件。

如果您确定Tomcat没有运行,只需删除该文件(它应该通过CATALINA_PID环境变量提供),然后重试。

如果你想要一个自我重新启动的服务,考虑一下jsvc,它实际上附带了源代码形式的Tomcat二进制文件。

答案 1 :(得分:2)

你运行tomcat的是哪个端口? 80或8080端口? 在同一端口上运行的其他任何服务?你检查过了吗? 您可以使用其进程ID

来终止tomcat
ps -ax | grep tomcat
kill -9 <PID>

如果你确定tomcat是你运行的唯一java应用程序,那么你可以使用

来杀死它
killall -9 java

重启时使用尾巴观察catelina.out。

类似这样,取决于您的安装方法/路径:

tail -f /usr/share/apache-tomcat-6.0.37/logs/catalina.out

同时检查init脚本或setenv.sh配置此PID文件的位置。我从来没用过它。

答案 2 :(得分:0)

首先请找到端口或服务名称正在linux服务中运行。

ps -ax | grep 8080

然后杀死该进程

Kill 8080

然后使用此命令启动您的tomcat

sudo service tomcat start 

它将起作用。