我正在尝试在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)
答案 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