我使用 apt-get install tomcat6 在 Ubuntu 9.04 服务器上安装了 Tomcat6。我使用管理器界面上传了一个 WAR,并尝试启动该应用程序,但在 Web 界面上收到一个非常通用的错误,提示无法启动。
我正在尝试查找日志来确定为什么我的战争无法开始(我怀疑内存不足,因为我在一个小型 VPS 上)但我不知道它们在哪里。
/var/lib/tomcat6/logs 为空。我的 Tomcat 启动页面可靠地告知我以下内容;
Tomcat is installed with CATALINA_HOME in /usr/share/tomcat6
CATALINA_BASE in /var/lib/tomcat6,
following the rules from /usr/share/doc/tomcat6-common/RUNNING.txt.gz.
更新
我尝试着跑步;
$ ps -ax
/usr/bin/jsvc -user tomcat6 -cp /usr/share/java/commons-daemon.jar:/usr/share/tomcat6/bin/bootstrap.jar -outfile SYSLOG -errfile SYSLOG -pidfile /var/run/tomcat6.pid
但 /var/log/syslog 中没有任何内容
也运行
$ losof -p PID
没有显示任何日志文件...
$ for PID in $(pgrep jsvc);do sudo ls -l /proc/$PID/fd|grep ' 1 -> ';done
l-wx------ 1 root 500 64 2010-03-30 13:29 1 -> pipe:[301470406]
lrwx------ 1 root 500 64 2010-03-30 13:29 1 -> /dev/null
l-wx------ 1 root root 64 2010-03-30 13:29 1 -> pipe:[301470406]
谢谢,
加夫
答案1
这次讨论很晚了,但看起来 tomcat5.5 和 tomcat6 中的 03catalina.policy 文件实际上不允许写入日志文件。
最简单的解决方案是将 JULI 权限更改为:
// These permissions apply to JULI
grant codeBase "file:${catalina.home}/bin/tomcat-juli.jar" {
permission java.security.AllPermission;
};
显然,可能是我不知道的安全问题,但我真的懒得深入挖掘——我自己在这上面花了太长时间。
答案2
一个巧妙的技巧是运行命令“ lsof -p PID
”,其中 PID 是 tomcat 服务器的进程 ID。此命令将为您提供该进程打开的所有文件的列表,包括日志文件。请参阅维基百科页面。
答案3
默认检查
/var/log/tomcat6/catalina.out
或类似的东西
并检查日志记录属性
/usr/share/tomcat6/conf/logging.properties
通常 /usr/share/tomcat6/conf/ 是 /etc/tomcat6/ 的符号链接
答案4
默认情况下,Tomcat 日志位于/var/log/tomcat?
并且/var/lib/tomcat7/logs
通常指向那里。
由于root
,您可以通过以下方式检查:
tail -f /var/log/tomcat7/*.log /var/log/tomcat7/*.txt /var/log/tomcat7/*.out
如果仍有问题,请尝试通过以下方式查找:
sudo lsof | grep -E "java.*(out|txt|log)$"