springboot項(xiàng)目注冊為Linux系統(tǒng)服務(wù)并設(shè)置開機(jī)自啟動

2021-02-24    分類: 網(wǎng)站建設(shè)

springboot項(xiàng)目注冊為Linux的服務(wù)并設(shè)置開機(jī)自啟動
上一篇我們講到了springboot項(xiàng)目注冊為windows系統(tǒng)服務(wù)并設(shè)置開機(jī)自啟。
一般項(xiàng)目生產(chǎn)環(huán)境都在Linux上面跑,所以今天創(chuàng)新互聯(lián)來講一下如何在Linux中將springboot項(xiàng)目注冊為系統(tǒng)服務(wù)并設(shè)置開機(jī)自啟動,這里我們以Centos7.6為例。
1、上傳我們的springboot項(xiàng)目的jar包
如下圖所示:
名為demo-0.0.1-SNAPSHOT.jar
springboot項(xiàng)目注冊為Linux系統(tǒng)服務(wù)并設(shè)置開機(jī)自啟動
2、 啟動項(xiàng)目
java -jar demo-0.0.1-SNAPSHOT.jar
springboot項(xiàng)目注冊為Linux系統(tǒng)服務(wù)并設(shè)置開機(jī)自啟動
補(bǔ)充:
可能存在極少數(shù)是這樣(或者類似)來啟動springboot項(xiàng)目,其實(shí)這里的這種方式啟動跟window中開啟cmd窗口啟動類似,這里不能退出交互,例如:Ctrl+C就會被kill掉。所以,比較好的一種方案,就是將springboot項(xiàng)目注冊為Linux系統(tǒng)服務(wù)。
3、 基于Linux的Systemd部署springboot項(xiàng)目
(1)關(guān)于systemd簡單介紹:
systemd是Linux 下一個(gè)與SysV和LSB初始化腳本兼容的系統(tǒng)和服務(wù)管理器。systemd 使用 socket和D-Bus來開啟服務(wù),提供基于守護(hù)進(jìn)程的按需啟動策略,保留了Linux cgroups的進(jìn)程追蹤功能,支持快照和系統(tǒng)狀態(tài)恢復(fù),維護(hù)掛載和自掛載點(diǎn),實(shí)現(xiàn)了各服務(wù)間基于從屬關(guān)系的一個(gè)更為精細(xì)的邏輯控制,擁有前衛(wèi)的并行性能。systemd無需經(jīng)過任何修改便可以替代sysvinit 。
補(bǔ)充:
關(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項(xiàng)目注冊為Linux系統(tǒng)服務(wù)并設(shè)置開機(jī)自啟動
cat demo.service
這里的這個(gè)demo.service是我之前寫好的
springboot項(xiàng)目注冊為Linux系統(tǒng)服務(wù)并設(shè)置開機(jī)自啟動
內(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:定義啟動進(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) 、啟動服務(wù)
#啟動
systemctl start demo.service
#查看服務(wù)狀態(tài)
systemctl status demo.service
springboot項(xiàng)目注冊為Linux系統(tǒng)服務(wù)并設(shè)置開機(jī)自啟動
(4) 、查看日志
journalctl -u demo
-u:查看指定名字的Unit日志
關(guān)于journalctl命令大家自行man。
springboot項(xiàng)目注冊為Linux系統(tǒng)服務(wù)并設(shè)置開機(jī)自啟動
亦可
journalctl -u demo -f
springboot項(xiàng)目注冊為Linux系統(tǒng)服務(wù)并設(shè)置開機(jī)自啟動
(5) 訪問web界面
#查看ip
ip a
springboot項(xiàng)目注冊為Linux系統(tǒng)服務(wù)并設(shè)置開機(jī)自啟動
訪問
springboot項(xiàng)目注冊為Linux系統(tǒng)服務(wù)并設(shè)置開機(jī)自啟動
(6)設(shè)置開機(jī)自啟動
#開機(jī)啟動
systemctl enable demo.service
#查看是否設(shè)置成功
[root@docker ~]# systemctl list-unit-files | grep enabled | grep demo
demo.service enabled
springboot項(xiàng)目注冊為Linux系統(tǒng)服務(wù)并設(shè)置開機(jī)自啟動
(7)總結(jié)
最后,本例用到的demo.service文件僅是作為測試文件,這里只是給大家提供一個(gè)思路。關(guān)于它的完善需要大家根據(jù)自己的需求來填充。
補(bǔ)充一些常用命令:
開機(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
最后感謝大家支持。

網(wǎng)站名稱:springboot項(xiàng)目注冊為Linux系統(tǒng)服務(wù)并設(shè)置開機(jī)自啟動
本文URL:http://bm7419.com/news/102680.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、ChatGPT、小程序開發(fā)、動態(tài)網(wǎng)站云服務(wù)器、軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)