如何為JAR設置定時重啟?

AI越來越火了,我們想要不被淘汰就得主動擁抱。推薦一個人工智能學習網站,通俗易懂,風趣幽默,最重要的屌圖甚多,忍不住分享一下給大家。點擊跳轉到網站

前面我們說過了如何將jar交由Systemctl管理,下面我們說說如何為被Systemctl管理的jar設置重啟腳本。

  1. Systemd 服務單元文件
    首先最重要的一點是確保jar已經被Systemctl管理,前面交由其管理的是名為 hello.jar 的核心文件,并定義了如何啟動、停止和重啟 JAR 文件。需要確保這個文件已經存在并正確配置。

該文件位置:

 /etc/systemd/system/hello.service
  1. Systemd 定時器單元文件 (hello.timer)
    這是我們提供的定時器文件,用于每天凌晨 3 點觸發重啟服務。它的內容如下:
[Unit]
Description=Restart Hello Service Daily[Timer]
OnCalendar=*-*-* 03:00:00
Persistent=true
Unit=hello.service  # 明確指定要觸發的服務[Install]
WantedBy=timers.target
  • OnCalendar:設置定時任務的時間(每天凌晨 3 點)。
  • Persistent=true:如果系統在定時任務觸發時關機,任務會在下次啟動時執行。

該文件位置:/etc/systemd/system/hello.timer。

  • 啟用定時器:sudo systemctl enable hello.timer
  • 關閉定時器: systemctl disable hello.timer
  • 檢查是否已啟用: systemctl is-enabled hello.timer
  • 立即啟動定時器:sudo systemctl start hello.timer
  • 檢查定時器狀態:systemctl list-timerssudo systemctl status hello.timer
  • 查看定時器日志: journalctl -u hello.timer
  • 測試定時器: systemd-analyze calendar "*-*-* 03:00:00"
  • 修改配置后重新加載:加載配置-> sudo systemctl daemon-reload ;重啟定時器->sudo systemctl restart hello.timer
  1. 定時器如何工作
  • 當定時器觸發時,Systemd 會自動調用與定時器同名的服務(即 hello.service)。

  • hello.service 會執行 ExecStart 中的命令(即啟動 JAR 文件)。

  • 如果服務已經在運行,Systemd 會先停止服務,然后重新啟動它。

  1. 驗證
  • 查看定時器狀態:systemctl list-timers

應該看到:

[root@hcss-ecs-1675 usr]# systemctl list-timers
NEXT                         LEFT       LAST                         PASSED       UNIT                         ACTIVATES
Tue 2025-03-04 13:43:00 CST  11min left Tue 2025-03-04 11:47:53 CST  1h 44min ago dnf-makecache.timer          dnf-makecache.service
Tue 2025-03-04 14:00:00 CST  28min left n/a                          n/a          hello.timer                  hello.service
Wed 2025-03-05 00:00:00 CST  10h left   Tue 2025-03-04 09:07:01 CST  4h 24min ago unbound-anchor.timer         unbound-anchor.service
Wed 2025-03-05 09:21:53 CST  19h left   Tue 2025-03-04 09:21:53 CST  4h 10min ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service4 timers listed.
Pass --all to see loaded but inactive timers, too.

問題:為什么我按照配置做了,定時腳本也運行了,但我的jar仍然沒有重啟?
分析:定時器hello.timer的作用指定時間觸發hello.service,但如果觸發時hello.service已經在運行了,系統不會重新啟動它,除非服務配置允許重啟。但一般情況下定時器只會觸發類型為“start”的操作,而不是“restart”。
解決方案:通過中間服務觸發重啟。

  1. 創建重啟專用服務單元
    新建文件 /etc/systemd/system/hello-restart.service:
[Unit]
Description=Restart Hello Service[Service]
Type=oneshot
ExecStart=/bin/systemctl restart hello.service[Install]
WantedBy=multi-user.target
  1. 修改定時器配置指向中間服務
#更新 /etc/systemd/system/hello.timer
[Unit]
Description=Restart Video Service Daily[Timer]
OnCalendar=*-*-* 03:00:00
Persistent=true
Unit=hello-restart.service  # 指向新服務單元[Install]
WantedBy=timers.target
  1. 重載配置并啟用
sudo systemctl daemon-reload
sudo systemctl enable hello-restart.service
sudo systemctl restart hello.timer

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

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

相關文章

神碼AC-AP無線部署

神碼AC-AP無線部署: 1.設置基礎網絡 交換機設置 service dhcp ! ip dhcp pool ap (AP用地址) network-address 10.1.1.0 255.255.255.0 default-router 10.1.1.254 option 43 hex 010401010101 (AC IP地址16進制&#…

【Redis】常用命令匯總

Redis 作為高性能的鍵值存儲數據庫,提供了豐富的命令集,主要涵蓋 字符串 (String)、哈希 (Hash)、列表 (List)、集合 (Set)、有序集合 (ZSet)、鍵 (Keys)、Geo(地理位置)、HyperLogLog(基數統計)、Bitmap&a…

Redis - 高可用實現方案解析:主從復制與哨兵監控

文章目錄 Pre概述Redis 高可用實現方案一、主從復制機制1.1 全量同步流程1.2 增量同步(PSYNC)流程 二、哨兵監控機制2.1 故障轉移時序流程 三、方案對比與選型建議四、生產環境實踐建議 Pre Redis-入門到精通 Redis進階系列 Redis進階 - Redis主從工作…

2025年滲透測試面試題總結-02(題目+回答)

網絡安全領域各種資源,學習文檔,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各種好玩的項目及好用的工具,歡迎關注。 目錄 阿里云安全實習 一、代碼審計經驗與思路 二、越權漏洞原理與審計要點 三、SSRF漏洞解析與防御 四、教…

水滴tabbar canvas實現思路

廢話不多說之間看效果圖,只要解決了這個效果水滴tabbar就能做出來了 源碼地址 一、核心實現步驟分解 布局結構搭建 使用 作為繪制容器 設置 width=600, height=200 基礎尺寸 通過 JS 動態計算實際尺寸(適配高清屏) function initCanvas() {// 獲取設備像素比(解決 Re…

解決各大瀏覽器中http地址無權限調用麥克風攝像頭問題(包括谷歌,Edge,360,火狐)后續會陸續補充

項目場景: 在各大瀏覽器中http地址調用電腦麥克風攝像頭會沒有權限,http協議無法使用多媒體設備 原因分析: 為了用戶的隱私安全,http協議無法使用多媒體設備。因為像攝像頭和麥克風屬于可能涉及重大隱私問題的API,ge…

網絡安全蜜罐產品研究現狀

🍅 點擊文末小卡片 ,免費獲取網絡安全全套資料,資料在手,漲薪更快 一、知識點總結 1、蜜罐(Honeypot):誘捕攻擊者的一個陷阱。 2、蜜網(Honeynet):采用了技術…

el-card 結合 el-descriptions 作為信息展示

記錄下el-card 組合 el-descriptions 實現動態展示信息 文章結構 實現效果1. el-descriptions 組件使用1.1 結合v-for實現列表渲染1.2 解析 2. 自定義 el-descriptions 樣式2.1 修改背景色、字體顏色2.2 調整字體大小2.3 解析 3. el-card 結合 el-descriptions 作為信息展示3.…

【Java---數據結構】鏈表 LinkedList

1. 鏈表的概念 鏈表用于存儲一系列元素,由一系列節點組成,每個節點包含兩部分:數據域和指針域。 數據域:用于存儲數據元素 指針域:用于指向下一個節點的地址,通過指針將各個節點連接在一起,形…

python-leetcode-不同的二叉搜索樹 II

95. 不同的二叉搜索樹 II - 力扣(LeetCode) # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class S…

動態規劃/貪心算法

一、動態規劃 動態規劃 是一種用于解決優化問題的算法設計技術,尤其適用于具有重疊子問題和最優子結構性質的問題。它通過將復雜問題分解為更簡單的子問題,并保存這些子問題的解以避免重復計算,從而提高效率。 動態規劃的核心思想 最優子結…

2月28日,三極管測量,水利-51單片機

眾所周知,三極管(BJT)有三個管腳,基極(B)、集電極(C)、發射極(E),在實際應用中,不可避免地會遇到引腳辨別的問題。接下來就講下三極管…

Linux常見基本指令(二)

目錄 1、Linux基礎指令 文本查看 cat指令 more指令 less指令 head指令&tail指令 時間相關指令 查找、搜索相關指令 find指令 which指令 whereis指令 alias指令 grep指令 打包壓縮和解壓縮 zip指令(壓縮) unzip(解壓&…

Day 55 卡瑪筆記

這是基于代碼隨想錄的每日打卡 所有可達路徑 題目描述 ? 給定一個有 n 個節點的有向無環圖,節點編號從 1 到 n。請編寫一個函數,找出并返回所有從節點 1 到節點 n 的路徑。每條路徑應以節點編號的列表形式表示。 輸入描述 ? 第一行包含兩個整數…

2. 在后端代碼中加入日志記錄模塊

1. 說明 日志模塊基本上是每一個軟件系統開發中必不可少的,主要用于持久記錄一些代碼運行中的輸出信息,輔助編碼人員進行代碼調試,以及后期軟件上線運行報錯分析。在Python中加入日志模塊比較簡單,只需要借助logging和RotatingFi…

【Vue3】淺談setup語法糖

Vue3 的 setup 語法糖是通過 <script setup> 標簽啟用的特性&#xff0c;它是對 Composition API 的進一步封裝&#xff0c;旨在簡化組件的聲明式寫法&#xff0c;同時保留 Composition API 的邏輯組織能力。以下是其核心概念和原理分析&#xff1a; 一、<script setu…

物聯網小范圍高精度GPS使用

在園區內實現小范圍高精度GPS&#xff08;全球定位系統&#xff09;定位&#xff0c;通常需要結合多種技術來彌補傳統GPS在精度和覆蓋范圍上的不足。以下是實現小范圍高精度GPS定位的解決方案&#xff0c;包括技術選擇、系統設計和應用場景。 一、技術選擇 在園區內實現高精度…

【前端】前端設計中的響應式設計詳解

文章目錄 前言一、響應式設計的定義與作用二、響應式設計的原則三、響應式設計的實現四、響應式設計的最佳實踐總結 前言 在當今數字化時代&#xff0c;網站和應用程序需要適應各種設備&#xff0c;從桌面電腦到平板電腦和手機。響應式設計應運而生&#xff0c;成為一種可以適…

Rocky Linux 系統安裝 typecho 個人博客系統(Docker 方式)

typecho 博客系統安裝 官網: https://typecho.org/ 1. 安裝 Docker curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker.repo && yum install docker-ce -y && docker -v && systemctl enable --now docker…

pytorch-gpu版本安裝(英偉達gpu驅動安裝)

一、安裝cuda 1?? 檢查是否有 GPU lspci | grep -i nvidia如果沒有輸出&#xff0c;可能你的服務器 沒有 GPU&#xff0c;或者 GPU 未正確識別。 2?? 檢查 NVIDIA 驅動是否安裝 dpkg -l | grep -i nvidia如果沒有相關輸出&#xff0c;說明驅動未安裝&#xff0c;建議安…