【定昌Linux系統】部署了java程序,設置開啟啟動

將代碼上傳到相應的目錄,并且配置了一個.sh的啟動腳本文件

文件內容:

#!/bin/bash# 指定JAR文件的路徑(如果JAR文件在當前目錄,可以直接使用文件名)
JAR_FILE="/usr/local/java/xs_luruan_client/lib/xs_luruan_client.jar"
# 或者使用絕對路徑
# JAR_FILE="/path/to/your/myapp.jar"# 檢查JAR文件是否存在
if [ ! -f "$JAR_FILE" ]; thenecho "Error: JAR file '$JAR_FILE' not found!"exit 1
fi# 運行JAR文件
java -cp "$JAR_FILE" com.xs.start.Starter# 檢查Java命令是否成功執行(可選)
# 注意:這個檢查可能不夠準確,因為Java應用可能會以非零狀態碼退出表示正常結束(例如,Spring Boot應用的優雅停機)
# 如果你需要更精確的檢查,應該根據應用的具體行為來調整
if [ $? -ne 0 ]; thenecho "Error: Java application exited with a non-zero status code."exit 1
fiecho "Java application exited successfully."

運行start.sh

./start.sh

運行界面:

我現在要做成開機啟動的方式:

創建.service文件

[Unit]
Description=XS Luruan Client Service
After=network.target[Service]
Type=simple
ExecStart=/usr/local/java/xs_luruan_client/start.sh
Restart=on-failure
User=root[Install]
WantedBy=multi-user.target

將文件命名為:xs_luruan_client.service

將文件通過filezille工具上傳到:/etc/systemd/system文件夾下,但是提示權限不夠

怎么辦呢,那應該就得付權限了

想直接在這個目錄下創建.service文件,或者將.service文件復制到該目錄下,提示

sudo: /etc/sudoers.d/README is world writable

經過查詢deepseek,讓修改權限

可以上傳了

然后將設置自啟動

在系統上執行如下:

驗證下是否啟動:

竟然啟動失敗了,這是怎么回事呢

查看服務狀態

提示如下:

[Unit]
Description=XS Luruan Client Service
After=network.target[Service]
Environment="JAVA_HOME=/usr/local/java/jdk1.8.0_391"
Environment="PATH=$JAVA_HOME/bin:$PATH"
Type=simple
ExecStart=/usr/local/java/xs_luruan_client/start.sh
Restart=on-failure
User=root[Install]
WantedBy=multi-user.target

增加了環境變了

重新刷新驗證

還是同樣的問題

查找javahome的絕對路徑

readlink -f $(which java)

在.sh中命令增加絕對路徑

#!/bin/bash# 指定JAR文件的路徑(如果JAR文件在當前目錄,可以直接使用文件名)
JAR_FILE="/usr/local/java/xs_luruan_client/lib/xs_luruan_client.jar"
# 或者使用絕對路徑
# JAR_FILE="/path/to/your/myapp.jar"# 檢查JAR文件是否存在
if [ ! -f "$JAR_FILE" ]; thenecho "Error: JAR file '$JAR_FILE' not found!"exit 1
fi# 運行JAR文件
/usr/local/java/jdk1.8.0_391/bin/java -cp "$JAR_FILE" com.xs.start.Starter# 檢查Java命令是否成功執行(可選)
# 注意:這個檢查可能不夠準確,因為Java應用可能會以非零狀態碼退出表示正常結束(例如,Spring Boot應用的優雅停機)
# 如果你需要更精確的檢查,應該根據應用的具體行為來調整
if [ $? -ne 0 ]; thenecho "Error: Java application exited with a non-zero status code."exit 1
fiecho "Java application exited successfully."

就可以正常啟動了

現在要系統重啟,發現的確執行了,但是聯網失敗了,看來是在終端聯網就啟動系統了,但是網絡還沒有通,所以聯網失敗了。

關閉服務:

# 停止單個服務(需管理員權限)
sudo systemctl stop <service-name># 示例:停止 Apache/Nginx
sudo systemctl stop apache2  # Ubuntu/Debian 的 Apache
sudo systemctl stop httpd     # CentOS/RHEL 的 Apache
sudo systemctl stop nginx     # Nginx# 查看服務狀態(確認是否停止)
sudo systemctl status <service-name>

那么看看如何實現延時啟動呢。

在.service文件中增加延時配置

[Unit]
Description=XS Luruan Client Service
After=network.target[Service]
Environment="JAVA_HOME=/usr/local/java/jdk1.8.0_391"
Environment="PATH=$JAVA_HOME/bin:$PATH"
Type=simple
ExecStartPre=/bin/sleep 50  # 延時5秒
ExecStart=/usr/local/java/xs_luruan_client/start.sh
Restart=on-failure
User=root[Install]
WantedBy=multi-user.target

然后重新將文件上傳,并且復制到system目錄,刷新systemctl

提示sleep不存在,

那么就監測sleep是否存在

which sleep   # 輸出應為 /bin/sleep 或 /usr/bin/sleep

輸出:

/usr/bin/sleep?

那么就把start.sh? 和 service文件都改一下

#!/bin/bash# 指定JAR文件的路徑(如果JAR文件在當前目錄,可以直接使用文件名)
JAR_FILE="/usr/local/java/xs_luruan_client/lib/xs_luruan_client.jar"
# 或者使用絕對路徑
# JAR_FILE="/path/to/your/myapp.jar"# 檢查JAR文件是否存在
if [ ! -f "$JAR_FILE" ]; thenecho "Error: JAR file '$JAR_FILE' not found!"exit 1
fi
#延時50秒再執行,以便于設備聯網成功
/usr/bin/sleep 50# 運行JAR文件
/usr/local/java/jdk1.8.0_391/bin/java -cp "$JAR_FILE" com.xs.start.Starter# 檢查Java命令是否成功執行(可選)
# 注意:這個檢查可能不夠準確,因為Java應用可能會以非零狀態碼退出表示正常結束(例如,Spring Boot應用的優雅停機)
# 如果你需要更精確的檢查,應該根據應用的具體行為來調整
if [ $? -ne 0 ]; thenecho "Error: Java application exited with a non-zero status code."exit 1
fiecho "Java application exited successfully."
[Unit]
Description=XS Luruan Client Service
# 聲明需要網絡在線后才能啟動
After=network-online.target
Wants=network-online.target[Service]
Environment="JAVA_HOME=/usr/local/java/jdk1.8.0_391"
Environment="PATH=$JAVA_HOME/bin:$PATH"
Type=simple
ExecStart=/usr/local/java/xs_luruan_client/start.sh
Restart=on-failure
User=root[Install]
WantedBy=multi-user.target

通過在.sh中增加延時操作,終于可以在自啟過程中,等待網絡連接成功后再啟動了,

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/71154.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/71154.shtml
英文地址,請注明出處:http://en.pswp.cn/web/71154.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java 8 中,可以使用 Stream API 和 Comparator 對 List 按照元素對象的時間字段進行倒序排序

文章目錄 引言I 示例對象II List 按時間字段倒序排序: 使用 `Stream` 和 `Comparator` 排序方法 1:使用 `Comparator.comparing`方法 2:使用 `Comparator.reversed`方法 3:自定義 `Comparator`輸出結果III 注意事項**時間字段類型**:**空值處理**:IV 總結引言 案例:在線用…

jvm內存模型,類加載機制,GC算法,垃圾回收器,jvm線上調優等常見的面試題及答案

JVM內存模型 JVM內存模型包括哪些區域 答案&#xff1a;JVM內存模型主要包括以下區域&#xff1a; 程序計數器&#xff1a;是一塊較小的內存空間&#xff0c;它可以看作是當前線程所執行的字節碼的行號指示器&#xff0c;用于記錄正在執行的虛擬機字節碼指令的地址。Java虛擬機…

git clone的時候出現出現error

報錯如下&#xff1a; Collecting githttps://github.com/haotian-liu/LLaVA.git Cloning https://github.com/haotian-liu/LLaVA.git to /tmp/pip-req-build-360q6tt1 Running command git clone --filterblob:none --quiet https://github.com/haotian-liu/LLaVA.git /t…

Minio搭建并在SpringBoot中使用完成用戶頭像的上傳

Minio使用搭建并上傳用戶頭像到服務器操作,學習筆記 Minio介紹 minio官網 MinIO是一個開源的分布式對象存儲服務器&#xff0c;支持S3協議并且可以在多節點上實現數據的高可用和容錯。它采用Go語言開發&#xff0c;擁有輕量級、高性能、易部署等特點&#xff0c;并且可以自由…

vue3中ref和reactive響應式數據、ref模板引用(組合式和選項式區別)、組件ref的使用

目錄 Ⅰ.ref 1.基本用法&#xff1a;ref響應式數據 2.ref模板引用 3.ref在v-for中的模板引用 ?4.ref在組件上使用 ?5.TS中ref數據標注類型 Ⅱ.reactive 1.基本用法&#xff1a;reactive響應式數據 2.TS中reactive標注類型 Ⅲ.ref和reactive的使用場景和區別 Ⅳ.小結…

javascript實現雪花飄落效果

本文實現雪花飄落效果的 JavaScript 網頁設計案例&#xff0c;代碼實現如下&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, init…

項目準備(flask+pyhon+MachineLearning)- 3

目錄 1.商品信息 2. 商品銷售預測 2.1 機器學習 2.2 預測功能 3. 模型評估 1.商品信息 app.route(/products) def products():"""商品分析頁面"""data load_data()# 計算當前期間和上期間current_period data[data[成交時間] > data[成…

FPGA開發,使用Deepseek V3還是R1(3):系統級與RTL級

以下都是Deepseek生成的答案 FPGA開發&#xff0c;使用Deepseek V3還是R1&#xff08;1&#xff09;&#xff1a;應用場景 FPGA開發&#xff0c;使用Deepseek V3還是R1&#xff08;2&#xff09;&#xff1a;V3和R1的區別 FPGA開發&#xff0c;使用Deepseek V3還是R1&#x…

實現 Leaflet 多類型點位標記與聚合功能的實戰經驗分享

在現代的地理信息系統&#xff08;GIS&#xff09;應用中&#xff0c;地圖功能是不可或缺的一部分。無論是展示商業網點、旅游景點還是公共服務設施&#xff0c;地圖都能以直觀的方式呈現數據。然而&#xff0c;當數據量較大時&#xff0c;地圖上可能會出現大量的標記點&#x…

企微審批中MySQL字段TEXT類型被截斷的排查與修復實踐

在MySQL中&#xff0c;TEXT類型字段常用于存儲較大的文本數據&#xff0c;但在一些應用場景中&#xff0c;當文本內容較大時&#xff0c;TEXT類型字段可能無法滿足需求&#xff0c;導致數據截斷或插入失敗。為了避免這種問題&#xff0c;了解不同文本類型&#xff08;如TEXT、M…

【常見BUG】Spring Boot 和 Springfox(Swagger)版本兼容問題

???歡迎來到我的博客&#xff0c;很高興能夠在這里和您見面&#xff01;希望您在這里可以感受到一份輕松愉快的氛圍&#xff0c;不僅可以獲得有趣的內容和知識&#xff0c;也可以暢所欲言、分享您的想法和見解。 推薦:kwan 的首頁,持續學習,不斷總結,共同進步,活到老學到老…

HTTP 協議的發展歷程:從 HTTP/1.0 到 HTTP/2.0

HTTP 協議的發展歷程&#xff1a;從 HTTP/1.0 到 HTTP/2.0 HTTP&#xff08;HyperText Transfer Protocol&#xff0c;超文本傳輸協議&#xff09;是 Web 的基礎協議&#xff0c;用于客戶端和服務器之間的通信。從 HTTP/1.0 到 HTTP/2.0&#xff0c;HTTP 協議經歷了多次重大改…

apload-lab打靶場

1.提示顯示所以關閉js 上傳<?php phpinfo(); ?>的png形式 抓包&#xff0c;將png改為php 然后放包上傳成功 2.提示說檢查數據類型 抓包 將數據類型改成 image/jpeg 上傳成功 3.提示 可以用phtml&#xff0c;php5&#xff0c;php3 4.先上傳.htaccess文件&#xff0…

金融支付行業技術側重點

1. 合規問題 第三方支付系統的平穩運營&#xff0c;嚴格遵循《非銀行支付機構監督管理條例》的各項條款是基礎與前提&#xff0c;其中第十八條的規定堪稱重中之重&#xff0c;是支付機構必須牢牢把握的關鍵準則。 第十八條明確指出&#xff0c;非銀行支付機構需構建起必要且獨…

Cherry Studio + 火山引擎 構建個人AI智能知識庫

&#x1f349;在信息化時代&#xff0c;個人知識庫的構建對于提高工作效率、知識管理和信息提取尤為重要。尤其是當這些知識庫能結合人工智能來智能化地整理、分類和管理數據時&#xff0c;效果更為顯著。我最近嘗試通過 Cherry Studio 和 火山引擎 來搭建個人智能知識庫&#…

LeetCode 2 - 兩數相加

LeetCode 2 - 兩數相加 是一道經典鏈表操作問題&#xff0c;經常作為面試中基礎題的變體被考察。掌握多種解法及其變體&#xff0c;并熟悉其核心思路和模板代碼&#xff0c;可以快速備戰相關鏈表或大數計算問題。 題目描述 給定兩個非空鏈表&#xff0c;它們代表兩個非負整數&…

Qt之QStateMachine等待

在項目中經常需要等待&#xff0c;我們模擬0-30的數&#xff0c;假如我們其中5&#xff0c; 25的數需要進行等待&#xff0c;等待用戶處理完自己事情后&#xff0c;按下按鈕繼續&#xff0c;找Qt的項目中有一個 QStateMachineqstatemmachine類提供了一個分層有限狀態機。 QSta…

elpis全棧課程學習之elpis-core學習總結

elpis全棧課程學習之elpis-core學習總結 核心原理 elpis-core是全棧框架elpis的服務端內核&#xff0c;主要應用于服務端接口的開發以及頁面的SSR渲染&#xff0c;elpis-core基于約定優于配置的原理&#xff0c;通過一系列的loader來加載對應的文件&#xff0c;大大節約用戶的…

ChatGPT與DeepSeek:開源與閉源的AI模型之爭

目錄 一、模型架構與技術原理 二、性能能力與應用場景 三、用戶體驗與部署靈活性 四、成本與商業模式 五、未來展望與市場影響 六、總結 隨著人工智能技術的飛速發展&#xff0c;ChatGPT和DeepSeek作為兩大領先的AI語言模型&#xff0c;成為了行業內外關注的焦點。它們在…

在筆記本電腦上用DeepSeek搭建個人知識庫

最近DeepSeek爆火&#xff0c;試用DeepSeek的企業和個人越來越多。最常見的應用場景就是知識庫和知識問答。所以本人也試用了一下&#xff0c;在筆記本電腦上部署DeepSeek并使用開源工具搭建一套知識庫&#xff0c;實現完全在本地環境下使用本地文檔搭建個人知識庫。操作過程共…