JETTY_LOGS被附加到JETTY_HOME

时间:2014-05-02 00:38:43

标签: java centos jetty

我正在尝试在CentOS上运行Jetty并遇到问题,因为当我尝试设置JETTY_LOGS的完整路径时,我得到了意想不到的结果。系统尝试获取该路径并将其附加到我在JETTY_HOME变量中指定的路径。

JETTY_HOME=/usr/local/jetty/jetty-9.1.4
JETTY_USER=jetty
JETTY_PORT=8085
JETTY_HOST=0.0.0.0
JETTY_LOGS=/usr/local/jetty/jetty-9.1.4/logs

关于我做错了什么的想法?

我得到的错误是:

Starting Jetty: java.io.IOException: Cannot write start.log to directory
/usr/local/jetty/jetty-9.1.4/usr/local/jetty/jetty-9.1.4/logs [directory doesn't exist or is read-only]
java.io.IOException: Cannot write start.log to directory /usr/local/jetty/jetty-9.1.4/usr/local/jetty/jetty-9.1.4/logs [directory doesn't exist or is read-only]
        at org.eclipse.jetty.start.StartLog.initLogFile(StartLog.java:127)
        at org.eclipse.jetty.start.StartLog.initialize(StartLog.java:113)
        at org.eclipse.jetty.start.Main.processCommandLine(Main.java:520)
        at org.eclipse.jetty.start.Main.main(Main.java:102)

2 个答案:

答案 0 :(得分:1)

似乎JETTY_LOG目录与JETTY_HOME相关。

您可以尝试设置:

 JETTY_LOGS=/logs

或者

 JETTY_HOME=/usr/local/jetty/jetty-9.1.4/
 JETTY_LOGS=logs

答案 1 :(得分:0)

你没有做错任何事,这是jetty 9.1.4中的新行为:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=432192

解决方法是设置相对于您的jetty基础目录的JETTY_LOGS env var(就像标准jetty tarball中的logs目录一样):

JETTY_LOGS=logs

在您的情况下哪个将解析为/usr/local/jetty/jetty-9.1.4/logs(码头基地dir默认为码头家庭目录)。

如果您希望将日志写在jetty base dir之外的某个位置,最好的方法是使用上面的JETTY_LOGS=logs env设置,并在其他位置对dir进行符号链接;像这样创建并链接到公共/var/log/jetty目录:

# mv /usr/local/jetty/jetty-9.1.4/logs /var/log/jetty
# ln -s /var/log/jetty /usr/local/jetty/jetty-9.1.4/logs

无论您做什么,还要确保您运行jetty的用户具有对日志dir的写入权限;如果您使用jetty组中的jetty用户,请将其设为日志目录的所有者:

# chown -R jetty:jetty /var/log/jetty