網(wǎng)站廣告推廣公司鄭州seo詢搜點(diǎn)網(wǎng)絡(luò)效果佳
文章目錄
- 背景
- Linux服務(wù)配置步驟并設(shè)置開(kāi)機(jī)自啟動(dòng)
- 附-Linux服務(wù)常用指令
🙊 前言:由于博主在工作時(shí),需要將服務(wù)部署到 Linux 服務(wù)器上運(yùn)行,每次通過(guò)指令啟動(dòng)服務(wù)非常麻煩,所以將 jar 包部署的服務(wù)設(shè)置開(kāi)機(jī)自啟動(dòng),特此記錄
背景
由于是記錄在 Linux 環(huán)境下配置 jar 包程序并將其配置為 Linux 服務(wù)并設(shè)置開(kāi)機(jī)自自動(dòng),所以需要 Linux 以及相關(guān) Java 環(huán)境。博主使用的SSH客戶端遠(yuǎn)程連接工具是 MobaXterm,有需要的小伙伴可以參考《瑞_Java所有相關(guān)環(huán)境及軟件的安裝和卸載》
??步驟中所需的路徑參考如下 ??
??1?? JDK 安裝路徑/usr/local/jdk1.8
,即 Java 程序執(zhí)行路徑/usr/local/jdk1.8/bin/java
??2?? 需要配置為服務(wù)的 jar 包工作路徑/home/ray-project/ray-monitor
,以及 jar 包所在路徑/home/ray-project/ray-monitor/ray-monitor.jar
Linux服務(wù)配置步驟并設(shè)置開(kāi)機(jī)自啟動(dòng)
??1?? 進(jìn)入 Linux 系統(tǒng)服務(wù)路徑
cd /usr/lib/systemd/system/
??2?? 新建服務(wù)文件,如ray_monitor.service
vi ray_monitor.service
??3?? 服務(wù)文件內(nèi)容參考如下??
[Unit]
# 服務(wù)描述
Description=ray_monitor
# 指定該服務(wù)在哪個(gè)目標(biāo)(target)之后啟動(dòng)。network.target表示網(wǎng)絡(luò)服務(wù)已經(jīng)啟動(dòng)并可用后,再啟動(dòng)這個(gè)服務(wù)
After=network.target[Service]
# 指定服務(wù)類型為簡(jiǎn)單類型(simple),這意味著服務(wù)將一直運(yùn)行,直到被停止
Type=simple
# 指定服務(wù)的工作目錄
WorkingDirectory=/home/ray-project/ray-monitor/
# 設(shè)置服務(wù)的重啟策略,這里設(shè)置為always,表示只要服務(wù)進(jìn)程終止,就會(huì)自動(dòng)重啟。且Restart 先執(zhí)行ExecStop, 再執(zhí)行ExecStart
Restart=always
# 定義啟動(dòng)該服務(wù)時(shí)執(zhí)行的命令,并設(shè)置遠(yuǎn)程調(diào)試監(jiān)聽(tīng)端口
ExecStart=/usr/local/jdk1.8/bin/java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=48644 -jar ./ray-monitor.jar
# 定義停止該服務(wù)時(shí)執(zhí)行的命令。這里使用kill -15發(fā)送SIGTERM信號(hào)給主進(jìn)程($MAINPID)
ExecStop=/usr/bin/kill -15 $MAINPID
# 指定成功退出的狀態(tài)碼。由于Java進(jìn)程在收到SIGTERM信號(hào)后會(huì)返回143,所以這里設(shè)置為143。正常kill執(zhí)行成功是返回0
SuccessExitStatus=143[Install]
# 指定該服務(wù)屬于哪個(gè)目標(biāo)(target)。multi-user.target是默認(rèn)的多用戶目標(biāo),意味著該服務(wù)將在多用戶模式下啟動(dòng)
WantedBy=multi-user.target
vi 指令的使用 ??1?? 保存并退出:在 vi 的命令模式下(按下 Esc 鍵確保處于命令模式),輸入
:wq
并按 Enter 鍵。這個(gè)命令會(huì)將當(dāng)前編輯的內(nèi)容保存到文件中,然后退出 vi
??2?? 強(qiáng)制保存并退出:如果文件沒(méi)有寫入權(quán)限,但你想強(qiáng)制保存并退出,可以使用:wq!
命令
??3?? 僅保存不退出:如果你只想保存當(dāng)前編輯的內(nèi)容而不退出 vi,可以輸入:w
并按 Enter 鍵
??4?? 僅退出不保存:如果你想放棄所有未保存的更改并退出 vi,可以輸入:q!
并按 Enter 鍵
命令模式與其他模式的關(guān)系 ??與輸入模式的關(guān)系:在命令模式下,按下
i
鍵可以切換到輸入模式,此時(shí)用戶可以開(kāi)始輸入文本。完成輸入后,按下 Esc 鍵可以返回到命令模式
??與末行模式的關(guān)系:在命令模式下,按下冒號(hào):
可以切換到底行模式,以執(zhí)行文件管理操作,如保存文件和退出 vi。完成操作后,按下 Esc 鍵可以返回到命令模式
??4?? 重新加載 systemd 守護(hù)進(jìn)程的配置文件,使配置文件生效
sudo systemctl daemon-reload
??5?? 設(shè)置服務(wù)開(kāi)機(jī)自啟動(dòng)
sudo systemctl enable ray_monitor.service
??6?? 啟動(dòng)服務(wù)
sudo systemctl start ray_monitor.service
??7?? 檢查服務(wù)狀態(tài)
sudo systemctl status ray_monitor.service
瑞:如果服務(wù)啟動(dòng)異常,可以通過(guò)
journalctl -xe
或sudo systemctl status xxx.service -l
進(jìn)行錯(cuò)誤排查
# 查看啟動(dòng)日志錯(cuò)誤詳情
journalctl -xe
附-Linux服務(wù)常用指令
瑞:以下命令中
XXX.service
可以改為XXX
,即不需要.service
也能執(zhí)行
# 設(shè)置XXX服務(wù)開(kāi)機(jī)自啟動(dòng)
sudo systemctl enable xxx.service
# 移除XXX服務(wù)開(kāi)機(jī)自啟動(dòng)的設(shè)置
sudo systemctl disable xxx.service
# 重新加載 systemd 守護(hù)進(jìn)程的配置文件,使配置文件生效
sudo systemctl daemon-reload# 查看XXX服務(wù)狀態(tài)
sudo systemctl status xxx.service
# 重新加載指定服務(wù)的配置文件,而不需要中斷服務(wù)
sudo systemctl reload xxx.service
# 停止XXX服務(wù),如果設(shè)置了服務(wù)開(kāi)機(jī)自啟動(dòng),則服務(wù)器重啟后仍然會(huì)自啟動(dòng)
sudo systemctl stop xxx.service
# 開(kāi)啟XXX服務(wù),如果沒(méi)有設(shè)置服務(wù)開(kāi)機(jī)自啟動(dòng),則服務(wù)器重啟后仍然不會(huì)自啟動(dòng)
sudo systemctl start xxx.service
??如果覺(jué)得這篇文章對(duì)您有所幫助的話,請(qǐng)動(dòng)動(dòng)小手點(diǎn)波關(guān)注💗,你的點(diǎn)贊👍收藏??轉(zhuǎn)發(fā)🔗評(píng)論📝都是對(duì)博主最好的支持~