gpt4 book ai didi

debian - 在 debian 服务失败时启动 jetty

转载 作者:行者123 更新时间:2023-12-01 14:35:57 28 4
gpt4 key购买 nike

我已经安装了 jetty 9,但我无法将它作为服务启动/停止。
从命令行运行有效。

root@backend:/opt/jetty# service jetty start
Job for jetty.service failed. See 'systemctl status jetty.service' and 'journalctl -xn' for details.
root@oakstair-backend:/opt/jetty# systemctl status jetty.service
● jetty.service - LSB: Jetty start script.
Loaded: loaded (/etc/init.d/jetty)
Active: failed (Result: exit-code) since Fri 2016-12-16 10:14:47 UTC; 6min ago
Process: 11826 ExecStart=/etc/init.d/jetty start (code=exited, status=1/FAILURE)
Dec 16 10:14:43 backend jetty[11826]: JETTY_PID = /var/run/jetty.pid
Dec 16 10:14:43 backend jetty[11826]: JETTY_START = /opt/jetty/start.jar
Dec 16 10:14:43 backend jetty[11826]: JETTY_ARGS = --add-to-start=console-capture jetty.state=/opt/jetty/jetty.state jetty-logging.xml jetty-started.xml
Dec 16 10:14:43 backend jetty[11826]: JAVA_OPTIONS = -Dorg.eclipse.jetty.LEVEL=DEBUG -Djetty.logging.dir=/opt/jetty/logs -Djetty.home=/opt/jetty -Djetty.base=/opt/jetty -Djava.io.tmpdir=/tmp
Dec 16 10:14:43 backend jetty[11826]: JAVA = /usr/bin/java
Dec 16 10:14:43 backend jetty[11826]: RUN_CMD = /usr/bin/java -Dorg.eclipse.jetty.LEVEL=DEBUG -Djetty.logging.dir=/opt/jetty/logs -Djetty.home=/opt/jetty -Djetty.base=/opt/jetty -Djava.io.tmpdir=/tmp -jar /opt/jetty/start.jar --add-to-st...ml jetty-started.xml
Dec 16 10:14:47 backend jetty[11826]: Starting Jetty: FAILED Fri Dec 16 10:14:47 UTC 2016
Dec 16 10:14:47 backend systemd[1]: jetty.service: control process exited, code=exited status=1
Dec 16 10:14:47 backend systemd[1]: Failed to start LSB: Jetty start script..
Dec 16 10:14:47 backend systemd[1]: Unit jetty.service entered failed state.
Hint: Some lines were ellipsized, use -l to show in full.
root@backend:/opt/jetty#
root@backend:/opt/jetty# ls /var/log/jetty/
root@backend:/opt/jetty#

目前使用 jetty 9.3.14,因为我第一次尝试 9.4.0 并得到相同的结果。

不能说 jetty 非常有助于说明为什么它不想作为服​​务启动。发现其他一些与文件/目录所有者有相同问题的人。但我已经检查过了。

糟糕,我发现它记录到/opt/jetty/logs 而不是我想要的/var/logs/jetty。所以现在我有更多的信息.​​.....

StartLog Establishing /opt/jetty/logs/start.log on Fri Dec 16 13:40:16 UTC 2016
org.eclipse.jetty.start.graph.GraphException: Missing referenced dependency: console-capture
at org.eclipse.jetty.start.graph.Graph.selectNodes(Graph.java:470)
at org.eclipse.jetty.start.BaseBuilder.build(BaseBuilder.java:152)
at org.eclipse.jetty.start.Main.start(Main.java:407)
at org.eclipse.jetty.start.Main.main(Main.java:75)

最佳答案

-Djetty.home=/opt/jetty -Djetty.base=/opt/jetty

不要为 jetty.home 使用相同的目录和 jetty.base .

正如文档和启动警告(自 Jetty 9.2.0 起)告诉您的那样。

一般建议(当你这样做时你会很高兴,这一切都开始有意义了):

解开 jetty-home 的新分发包(或较旧的 jetty-distribution tarball)进入空的 ${jetty.home}目录。

Leave the ${jetty.home} directory alone, don't edit it, don't rename things, don't delete things, don't add things, don't change anything in it.



设置正确的 ${jetty.base}某处的目录,请确保它与您的 ${jetty.home} 不重叠目录以任何方式。

现在完全在您的 ${jetty.base} 中配置您的 jetty 实例目录。

例子:

# Initialize a fresh base directory (only need to do this once, ever)
$ mkdir /path/to/mybase
$ cd /path/to/mybase

# Prepare the jetty.base directory (this just creates directories, and adds start.d/*.ini for you)
$ java -jar /path/to/jetty-dist/start.jar --add-to-start=http,deploy,resources,ext,jmx,requestlog,console-capture,annotations,jsp
MKDIR : ${jetty.base}/start.d
INFO : webapp transitively enabled, ini template available with --add-to-start=webapp
INFO : ext initialized in ${jetty.base}/start.d/ext.ini
INFO : server transitively enabled, ini template available with --add-to-start=server
INFO : requestlog initialized in ${jetty.base}/start.d/requestlog.ini
INFO : servlet transitively enabled
INFO : jsp initialized in ${jetty.base}/start.d/jsp.ini
INFO : resources initialized in ${jetty.base}/start.d/resources.ini
INFO : annotations initialized in ${jetty.base}/start.d/annotations.ini
INFO : plus transitively enabled
INFO : deploy initialized in ${jetty.base}/start.d/deploy.ini
INFO : security transitively enabled
INFO : jmx initialized in ${jetty.base}/start.d/jmx.ini
INFO : apache-jsp transitively enabled
INFO : console-capture initialized in ${jetty.base}/start.d/console-capture.ini
INFO : jndi transitively enabled
INFO : http initialized in ${jetty.base}/start.d/http.ini
MKDIR : ${jetty.base}/lib
MKDIR : ${jetty.base}/lib/ext
MKDIR : ${jetty.base}/logs
MKDIR : ${jetty.base}/resources
MKDIR : ${jetty.base}/webapps
INFO : Base directory was modified

$ ls -F
lib/ logs/ resources/ start.d/ webapps/

# Configure your jetty.base instance
$ cp /tmp/mywebapp.war webapps/
$ edit start.d/http.ini

# Start your server instance (manually)
$ java -jar /path/to/jetty-dist/start.jar

由于您是通过服务开始的...

启动脚本,在 ${jetty.home}/bin/jetty.sh 中找到需要进入合适的 /etc/目录(选项太多,无法在此列出)。

您将配置您的 JETTY_HOMEJETTY_BASE您通常使用的目录 /etc/default/jetty文件。

将来,当新版本的 Jetty 发布时......
  • 将新的 jetty-distribution 解压到一个新的空目录中,例如 /opt/jetty-dist-9.5.0
  • 编辑您的 /etc/default/jetty并设置 JETTY_HOME=/opt/jetty-dist-9.5.0
  • 启动 jetty

  • 您不必编辑您的 ${jetty.base}进行升级。

    关于debian - 在 debian 服务失败时启动 jetty,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41182296/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com