我在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)
提前感谢您的帮助
答案 0 :(得分:2)
如果在正确设置CATALINA_PID环境变量的情况下运行Tomcat的启动脚本,则Tomcat进程的PID将在启动时记录到文件中。如果在尝试启动Tomcat时该文件存在,则脚本将拒绝运行,因为它不想破坏(可能有效的)PID文件。
如果您确定Tomcat没有运行,只需删除该文件(它应该通过CATALINA_PID环境变量提供),然后重试。
如果你想要一个自我重新启动的服务,考虑一下jsvc,它实际上附带了源代码形式的Tomcat二进制文件。
答案 1 :(得分:2)
你运行tomcat的是哪个端口? 80或8080端口? 在同一端口上运行的其他任何服务?你检查过了吗? 您可以使用其进程ID
来终止tomcatps -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
它将起作用。