springboot項目注冊為Linux的服務(wù)并設(shè)置開機自啟動
上一篇我們講到了springboot項目注冊為windows系統(tǒng)服務(wù)并設(shè)置開機自啟。
一般項目生產(chǎn)環(huán)境都在Linux上面跑,所以今天創(chuàng)新互聯(lián)來講一下如何在Linux中將springboot項目注冊為系統(tǒng)服務(wù)并設(shè)置開機自啟動,這里我們以Centos7.6為例。
1、上傳我們的springboot項目的jar包
如下圖所示:
名為demo-0.0.1-SNAPSHOT.jar
springboot項目注冊為Linux系統(tǒng)服務(wù)并設(shè)置開機自啟動
2、 啟動項目
java -jar demo-0.0.1-SNAPSHOT.jar
springboot項目注冊為Linux系統(tǒng)服務(wù)并設(shè)置開機自啟動
補充:
可能存在極少數(shù)是這樣(或者類似)來啟動springboot項目,其實這里的這種方式啟動跟window中開啟cmd窗口啟動類似,這里不能退出交互,例如:Ctrl+C就會被kill掉。所以,比較好的一種方案,就是將springboot項目注冊為Linux系統(tǒng)服務(wù)。
3、 基于Linux的Systemd部署springboot項目
(1)關(guān)于systemd簡單介紹:
systemd是Linux 下一個與SysV和LSB初始化腳本兼容的系統(tǒng)和服務(wù)管理器。systemd 使用 socket和D-Bus來開啟服務(wù),提供基于守護進程的按需啟動策略,保留了Linux cgroups的進程追蹤功能,支持快照和系統(tǒng)狀態(tài)恢復(fù),維護掛載和自掛載點,實現(xiàn)了各服務(wù)間基于從屬關(guān)系的一個更為精細的邏輯控制,擁有前衛(wèi)的并行性能。systemd無需經(jīng)過任何修改便可以替代sysvinit 。
補充:
關(guān)于systemd的更多內(nèi)容請參考:
https://fedoraproject.org/wiki/Systemd/zh-cn
(2) 編寫service文件
配置文件主要放在/usr/lib/systemd/system下,在/etc/systemd/system也有。
這里我們以/etc/systemd/system為例:
springboot項目注冊為Linux系統(tǒng)服務(wù)并設(shè)置開機自啟動
cat demo.service
這里的這個demo.service是我之前寫好的
springboot項目注冊為Linux系統(tǒng)服務(wù)并設(shè)置開機自啟動
內(nèi)容如下,比較簡單:
[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]:啟動順序與依賴關(guān)系
Description:當(dāng)前服務(wù)的簡單描述。
After:如syslog.target需要啟動,那么demo.service應(yīng)該在它之后啟動。
[Service]:啟動行為
ExecStart:定義啟動進程時執(zhí)行的命令。
如:/general/jdk1.8/bin/java -jar /general/demo-0.0.1-SNAPSHOT.jar。
[Install]
WantedBy:表示該服務(wù)所在的Target(服務(wù)組)。
補充:
這里可以查看multi-user.target包含的所有服務(wù),如下:
systemctl list-dependencies multi-user.target
(3) 、啟動服務(wù)
#啟動
systemctl start demo.service
#查看服務(wù)狀態(tài)
systemctl status demo.service
springboot項目注冊為Linux系統(tǒng)服務(wù)并設(shè)置開機自啟動
(4) 、查看日志
journalctl -u demo
-u:查看指定名字的Unit日志
關(guān)于journalctl命令大家自行man。
springboot項目注冊為Linux系統(tǒng)服務(wù)并設(shè)置開機自啟動
亦可
journalctl -u demo -f
springboot項目注冊為Linux系統(tǒng)服務(wù)并設(shè)置開機自啟動
(5) 訪問web界面
#查看ip
ip a
springboot項目注冊為Linux系統(tǒng)服務(wù)并設(shè)置開機自啟動
訪問
springboot項目注冊為Linux系統(tǒng)服務(wù)并設(shè)置開機自啟動
(6)設(shè)置開機自啟動
#開機啟動
systemctl enable demo.service
#查看是否設(shè)置成功
[root@docker ~]# systemctl list-unit-files | grep enabled | grep demo
demo.service enabled
springboot項目注冊為Linux系統(tǒng)服務(wù)并設(shè)置開機自啟動
(7)總結(jié)
最后,本例用到的demo.service文件僅是作為測試文件,這里只是給大家提供一個思路。關(guān)于它的完善需要大家根據(jù)自己的需求來填充。
補充一些常用命令:
開機自啟:systemctl enable demo.service
關(guān)閉自啟:systemctl disable demo.service
啟動服務(wù):systemctl start demo.service
停止服務(wù):systemctl stop demo.service
重啟服務(wù):systemctl restart demo.service
查看服務(wù)狀態(tài):systemctl status demo.service
最后感謝大家支持。
本文題目:springboot項目注冊為Linux系統(tǒng)服務(wù)并設(shè)置開機自啟動
文章URL:http://www.rwnh.cn/news30/102680.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)、App設(shè)計、靜態(tài)網(wǎng)站、企業(yè)建站、網(wǎng)站設(shè)計公司、品牌網(wǎng)站設(shè)計
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源:
創(chuàng)新互聯(lián)