首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 應用部署為系統後台服務:Linux 與 Windows 完整指南

     編輯:Java 相關知識

將 Java 應用註冊為作業系統服務,可實現開機自啟、無視窗後台運行、統一服務管理(systemd / services.msc)。本文分別給出 Linux(System V init / systemd)與 Windows(WinSW / Procrun)的標準化部署方案。

Linux 方案

傳統 SysV init(舊版 CentOS 6、Ubuntu 14 等)

編輯 /etc/init.d/boot.local(或建立 /etc/init.d/myapp 腳本),加入啟動命令:

/opt/appServer/MessageServer2.1/run.sh

run.sh 內容範例:

#!/bin/bash
export JAVA_HOME=/usr/lib/jvm/java-11
nohup $JAVA_HOME/bin/java -Xms512m -Xmx1024m -jar app.jar > /var/log/myapp.log 2>&1 &

systemd(現代標準,CentOS 7+、Ubuntu 16+)

建立 /etc/systemd/system/myapp.service:

[Unit]
Description=My Java Application
After=network.target

[Service]
Type=simple
User=appuser
WorkingDirectory=/opt/myapp
ExecStart=/usr/bin/java -Xms512m -Xmx1024m -jar app.jar
Restart=on-failure
RestartSec=10
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target

啟用:systemctl daemon-reload && systemctl enable --now myapp。

Windows 方案

方案 A:WinSW(推薦,輕量、支援 .NET 4.8+)

  1. 下載 WinSW.NET4.exe 重命名為 myapp.exe。
  2. 同目錄建立 myapp.xml:

  myapp
  My Java App
  Java 後台服務
  java
  -Xms512m -Xmx1024m -jar "C:\app\app.jar"
  rotate
  
  1. 管理員 PowerShell 執行:.\myapp.exe install、.\myapp.exe start。

方案 B:Apache Procrun(傳統,Tomcat 原生方式)

使用 prunsrv.exe 註冊服務,配置較繁瑣,適合需與 Tomcat 整合的場景。

方案 C:舊版 instsrv + srvany(僅供維護舊系統參考)

步驟:instsrv MyService C:\path\srvany.exe → 註冊表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService\Parameters 新增 Application(java.exe 路徑)、AppParameters(-jar app.jar)、AppDirectory(工作目錄)。

通用最佳實踐

  • JVM 參數外置配置檔,避免修改服務定義重裝。
  • 日誌輸出導向檔案/Journal,勿依賴控制台。
  • 健康檢查端點(/actuator/health)配合服務管理器實現自動重啟。
  • 以非 root / 非 Administrator 專用帳號運行,最小權限原則。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved