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