Configuration

將 Jetty 配置為服務 - 如何?

  • August 14, 2019

由於我使用的是 Debian,並且包管理器中的包不是最新的,所以我不得不手動安裝。

我將最新版本下載為 .tar.gz 文件,並將其解壓縮到 /opt。現在我不確定下一步該做什麼。

對於這台 PC 上的每個使用者,我需要讓 Jetty 在啟動時作為服務執行。但是怎麼做?我在文件中找不到任何內容。

如果找不到 jetty.sh,只需下載最後一個http://dev.eclipse.org/svnroot/rt/org.eclipse.jetty/jetty/trunk/jetty-distribution/src/main/resources/bin/jetty。噓

並將其保存到 /etc/init.d/jetty

此外,您可能需要編輯 /etc/default/jetty 來設置您的個人設置,例如:

JAVA_HOME=
JAVA_OPTIONS=
JETTY_HOME=
JETTY_USER=
JETTY_LOGS=

如果您希望在重新啟動後啟動服務,請不要忘記使用 update-rc.d 將其添加到預設啟動級別

對於 CentOS 7 Linux,我已經下載了最新的 Jetty 發行版並創建了文件/etc/systemd/system/jetty.service

[Unit]
Description=Jetty
After=network-online.target

[Service]
Type=simple
User=jetty
Group=jetty
ExecStart=/usr/bin/java -jar /usr/share/java/jetty-distribution-9.3.10.v20160621/start.jar jetty.home=/usr/share/java/jetty-distribution-9.3.10.v20160621 jetty.base=/var/www/jetty jetty.http.port=8080
ExecStop=/bin/kill ${MAINPID}
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target

然後我執行命令來創建使用者和基本目錄:

# useradd -s /sbin/nologin jetty

# java -jar /usr/share/java/jetty-distribution-9.3.10.v20160621/start.jar \
     jetty.home=/usr/share/java/jetty-distribution-9.3.10.v20160621 \
     jetty.base=/var/www/jetty \
     --add-to-startd=http,servlet,webapp,deploy,resources,ext,fcgi,websocket,proxy-protocol

# chown -R jetty.jetty /var/www/jetty

然後我啟動了新服務:

# systemctl enable jetty

# systemctl start jetty

最後檢查了日誌:

# systemctl status -l jetty

並驗證 Jetty 正在監聽 8080 埠:

# netstat -an | grep -w LISTEN

我認為 Debian Linux 上的命令會類似……

引用自:https://serverfault.com/questions/261738