springboot項目注冊為linux的服務并設置開機自啟動
上一篇我們講到了springboot項目注冊為windows系統服務并設置開機自啟。
1、上傳我們的springboot項目的jar包
如下圖所示:
名為demo-0.0.1-snapshot.jar
springboot項目注冊為linux系統服務并設置開機自啟動
2、 啟動項目
java -jar demo-0.0.1-snapshot.jar
springboot項目注冊為linux系統服務并設置開機自啟動
補充:
可能存在極少數是這樣(或者類似)來啟動springboot項目,其實這里的這種方式啟動跟window中開啟cmd窗口啟動類似,這里不能退出交互,例如:ctrl+c就會被kill掉。所以,比較好的一種方案,就是將springboot項目注冊為linux系統服務。
3、 基于linux的systemd部署springboot項目
(1)關于systemd簡單介紹:
systemd是linux 下一個與sysv和lsb初始化腳本兼容的系統和服務管理器。systemd 使用 socket和d-bus來開啟服務,提供基于守護進程的按需啟動策略,保留了linux cgroups的進程追蹤功能,支持快照和系統狀態恢復,維護掛載和自掛載點,實現了各服務間基于從屬關系的一個更為精細的邏輯控制,擁有前衛的并行性能。systemd無需經過任何修改便可以替代sysvinit 。
補充:
關于systemd的更多內容請參考:
https://fedoraproject.org/wiki/systemd/zh-cn
(2) 編寫service文件
配置文件主要放在/usr/lib/systemd/system下,在/etc/systemd/system也有。
這里我們以/etc/systemd/system為例:
springboot項目注冊為linux系統服務并設置開機自啟動
cat demo.service
這里的這個demo.service是我之前寫好的
springboot項目注冊為linux系統服務并設置開機自啟動
內容如下,比較簡單:
[unit]
description=java springboot service
after=syslog.target
[service]
execstart=/general/jdk1.8/bin/java -jar /general/demo-0.0.1-snapshot.jar
[install]
wantedby=multi-user.target
簡單的解釋:
[unit]:啟動順序與依賴關系
description:當前服務的簡單描述。
after:如syslog.target需要啟動,那么demo.service應該在它之后啟動。
[service]:啟動行為
execstart:定義啟動進程時執行的命令。
如:/general/jdk1.8/bin/java -jar /general/demo-0.0.1-snapshot.jar。
[install]
wantedby:表示該服務所在的target(服務組)。
補充:
這里可以查看multi-user.target包含的所有服務,如下:
systemctl list-dependencies multi-user.target
(3) 、啟動服務
#啟動
systemctl start demo.service
#查看服務狀態
systemctl status demo.service
springboot項目注冊為linux系統服務并設置開機自啟動
(4) 、查看日志
journalctl -u demo
-u:查看指定名字的unit日志
關于journalctl命令大家自行man。
springboot項目注冊為linux系統服務并設置開機自啟動
亦可
journalctl -u demo -f
springboot項目注冊為linux系統服務并設置開機自啟動
(5) 訪問web界面
#查看ip
ip a
springboot項目注冊為linux系統服務并設置開機自啟動
訪問
springboot項目注冊為linux系統服務并設置開機自啟動
(6)設置開機自啟動
#開機啟動
systemctl enable demo.service
#查看是否設置成功
[root@docker ~]# systemctl list-unit-files | grep enabled | grep demo
demo.service enabled
springboot項目注冊為linux系統服務并設置開機自啟動
(7)總結
最后,本例用到的demo.service文件僅是作為測試文件,這里只是給大家提供一個思路。關于它的完善需要大家根據自己的需求來填充。
補充一些常用命令:
開機自啟:systemctl enable demo.service
關閉自啟:systemctl disable demo.service
啟動服務:systemctl start demo.service
停止服務:systemctl stop demo.service
重啟服務:systemctl restart demo.service
查看服務狀態:systemctl status demo.service
最后感謝大家支持。
別不把LOGO當回事!淮安網站建設_淮安電商網站設計如何才能讓人印象深刻?設計師需要了解相關UX設計的知識淺析常見的網站建設方式有什么優缺點?憑借新浪博客操作SEO排名優化 更利于帶來精準流量客戶做營銷型網站,要注意避開這些問題網站設計:設計要用到哪些軟件?中小企業網站開始重視軟文營銷推廣