Java應用在Ubuntu平臺以服務的方式運行
- 版權聲明:本文爲博主chszs的原創文章,未經博主允許不得轉載。
本文講述在Ubuntu平臺上通過使用服務封裝器的方式,把JAR文件以服務的方式運行。讀者可以瞭解器做法,包括自動啓動的方式和日誌技巧。
假設你有一個可執行的JAR文件,你需要以服務的方式運行這個JAR文件。而且,當系統重啓時,希望這個服務能夠實現開機自啓動。
Ubuntu平臺內建了一個創建自定義服務的機制,允許用戶把應用程序以服務的方式啓動或停止,同時還支持開機自啓動。下面,我將分享怎樣實現服務封裝的方法,通過它把JAR文件封裝爲服務,並以服務的方式運行JAR文件。
1、創建一個服務
# sudo vim /etc/systemd/system/my-webapp.service
把以下內容複製粘貼到上面的文件中。
[Unit]
Description=My Webapp Java REST Service
[Service]
User=ubuntu
# The configuration file application.properties should be here:
#change this to your workspace
WorkingDirectory=/home/ubuntu/workspace
#path to executable.
#executable is a bash script which calls jar file
ExecStart=/home/ubuntu/workspace/my-webapp
SuccessExitStatus=143
TimeoutStopSec=10
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
2、創建一個調用服務的Bash腳本
下面是調用我的JAR文件(my-webapp)的Bash腳本:
#!/bin/sh
sudo /usr/bin/java -jar my-webapp-1.0-SNAPSHOT.jar server config.yml
不要忘記爲你腳本分配執行權限:
# sudo chmod u+x my-webapp
3、啓動服務
# sudo systemctl daemon-reload
# sudo systemctl enable my-webapp.service
# sudo systemctl start my-webapp
# sudo systemctl status my-webapp
4、設置日誌
首先,運行 sudo journalctl –unit=my-webapp
如果要查看實時日誌,那麼使用-f選項。
如果想查看部分,可以使用-n選項查看日誌的指定行數。
# sudo journalctl -f -n 1000 -u my-webapp
使用-f選項查看最新的實時日誌的輸出:
# sudo journalctl -f -u my-webapp
要停止服務,執行:
# sudo systemctl stop my-webapp