我试图在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)发布于 2014-05-11 01:42:48
您没有做错什么,这是Jetty9.1.4中的新行为:
解决方法是设置相对于您的jetty的JETTY_LOGS env (就像标准的jetty中的logs dir ):
JETTY_LOGS=logs在您的情况下,它将解析为/usr/local/jetty/jetty-9.1.4/logs ( jetty dir默认为jetty dir)。
如果您希望将日志写在jetty之外的某个地方,最好的方法是使用上面的JETTY_LOGS=logs env设置,然后将dir符号链接到其他地方;就像这样创建并链接到普通的/var/log/jetty dir:
# 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用户,那么让它成为您的日志dir的所有者:
# chown -R jetty:jetty /var/log/jettyhttps://stackoverflow.com/questions/23418997
复制相似问题