[Linux]如何將腳本(shell script)轉換到系統管理服務器(systemd service)來運行?

[InfluxDB]Monitor Tem. and Volt of RaspberryPi and Send Message by Line Notify

在Linux中,shell腳本(shell script)常用於運行各種自動化的流程,包含API串接,設置和啟動應用服務等等,腳本語法也相對易學易讀,因此頗受大部分使用者的喜愛。但若需要讓shell腳本能長期穩定運行,則建議將shell腳本轉換到系統管理服務器(systemd service)來運行,將有下列幾個優點,使得該服務的運作可有效被systemd管理。

1.Linux系統啟動後,可自動啟動。
2.服務異常退出後,可自動重啟。
3.透過journalctl集中管理該服務的日誌(log),可用於問題測試和偵錯。

上述影片即是一個實際案例,其利用shell腳本將樹莓派的溫度和電壓數值以固定週期傳到influxdb中,同時若溫度過高或電壓過低,則會藉由line notify發出提醒訊息,期望藉由該服務長期監控樹莓派的運作是否穩定,若有異常進程導致溫度過高或電壓過低,則可立刻查閱日誌並及時處理。話不多說,一起來看看如何將該shell腳本轉換到systemd service中。

a.利用nano新增systemd文件
sudo nano /etc/systemd/system/pi_tem_vol_detec.service
b.在該文件中,寫入下列內容
[Unit]
Description=Script to monitor Raspberry Pi voltage and temperature
After=network.target[Service]
Type=simple
ExecStart=/your_path/pi_tem_vol_detec.sh[Install]
WantedBy=multi-user.target

其中 /your_path/pi_tem_vol_detec.sh為shell腳本置放的路徑,完成後,儲存該文件並退出。

c.設定該文件的權限,並重新載入systemd,以添加該服務
sudo chmod 644 /etc/systemd/system/pi_tem_vol_detec.service
sudo systemctl daemon-reload
d.啟動該服務(pi_tem_vol_detec.service),並查看狀態
sudo systemctl start pi_tem_vol_detec
sudo systemctl status pi_tem_vol_detec
e.進一步將該服務設定為,開機時自動啟動
sudo systemctl enable pi_tem_vol_detec

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

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

相關文章

2025年最新在線模型轉換工具優化模型ncnn,mnn,tengine,onnx

文章目錄 引言最新網址地點一、模型轉換1. 框架轉換全景圖2. 安全的模型轉換3. 網站全景圖 二、轉換說明三、模型轉換流程圖四、感謝 引言 在yolov5,yolov8,yolov11等等模型轉換的領域中,時間成本常常是開發者頭疼的問題。最近發現一個超棒的…

理解知識蒸餾中的散度損失函數(KLDivergence/kldivloss )-以DeepSeek為例

1. 知識蒸餾簡介 什么是知識蒸餾? 知識蒸餾(Knowledge Distillation)是一種模型壓縮技術,目標是讓一個較小的模型(學生模型,Student Model)學習一個較大、性能更優的模型(教師模型…

Electron使用WebAassembly實現CRC-8 MAXIM校驗

Electron使用WebAssembly實現CRC-8 MAXIM校驗 將C/C語言代碼,經由WebAssembly編譯為庫函數,可以在JS語言環境進行調用。這里介紹在Electron工具環境使用WebAssembly調用CRC-8 MAXIM格式校驗的方式。 CRC-8 MAXIM校驗函數WebAssebly源文件 C語言實現CR…

Vue3.0實戰:大數據平臺可視化

文章目錄 創建vue3.0項目項目初始化項目分辨率響應式設置項目頂部信息條創建頁面主體創建全局引入echarts和axios后臺接口創建express銷售總量圖實現完整項目下載項目任何問題都可在評論區,或者直接私信即可。 創建vue3.0項目 創建項目: vue create vueecharts選擇第三項:…

vector容器(詳解)

本文最后是模擬實現全部講解,文章穿插有彩色字體,是我總結的技巧和關鍵 1.vector的介紹及使用 1.1 vector的介紹 https://cplusplus.com/reference/vector/vector/(vector的介紹) 了解 1. vector是表示可變大小數組的序列容器。…

Ubuntu 下 nginx-1.24.0 源碼分析 ngx_debug_init();

目錄 ngx_debug_init() 函數: NGX_LINUX 的定義: ngx_debug_init() 函數: ngx_debug_init() 函數定義在 src\os\unix 目錄下的 ngx_linux_config.h 中 #define ngx_debug_init() 也就是說這個環境下的 main 函數中的 ngx_debug_init() 這…

Airflow:深入理解Apache Airflow Task

Apache Airflow是一個開源工作流管理平臺,支持以編程方式編寫、調度和監控工作流。由于其靈活性、可擴展性和強大的社區支持,它已迅速成為編排復雜數據管道的首選工具。在這篇博文中,我們將深入研究Apache Airflow 中的任務概念,探…

開發環境搭建-4:WSL 配置 docker 運行環境

在 WSL 環境中構建:WSL2 (2.3.26.0) Oracle Linux 8.7 官方鏡像 基本概念說明 容器技術 利用 Linux 系統的 文件系統(UnionFS)、命名空間(namespace)、權限管理(cgroup),虛擬出一…

JavaScript 基礎 - 7

關于JS函數部分的學習和一個案例的練習 1 函數封裝 抽取相同部分代碼封裝 優點 提高代碼復用性:封裝好的函數可以在多個地方被重復調用,避免了重復編寫相同的代碼。例如,編寫一個計算兩個數之和的函數,在多個不同的計算場景中都…

詳解u3d之AssetBundle

一.AssetBundle的概念 “AssetBundle”可以指兩種不同但相關的東西。 1.1 AssetBundle指的是u3d在磁盤上生成的存放資源的目錄 目錄包含兩種類型文件(下文簡稱AB包): 一個序列化文件,其中包含分解為各個對象并寫入此單個文件的資源。資源文件&#x…

微信登錄模塊封裝

文章目錄 1.資質申請2.combinations-wx-login-starter1.目錄結構2.pom.xml 引入okhttp依賴3.WxLoginProperties.java 屬性配置4.WxLoginUtil.java 后端通過 code 獲取 access_token的工具類5.WxLoginAutoConfiguration.java 自動配置類6.spring.factories 激活自動配置類 3.com…

DeepSeek 介紹及對外國的影響

DeepSeek 簡介 DeepSeek(深度求索)是一家專注實現 AGI(人工通用智能)的中國科技公司,2023 年成立,總部位于杭州,在北京設有研發中心。與多數聚焦具體應用(如人臉識別、語音助手&…

MySQL數據庫(二)- SQL

目錄 ?編輯 一 DDL (一 數據庫操作 1 查詢-數據庫(所有/當前) 2 創建-數據庫 3 刪除-數據庫 4 使用-數據庫 (二 表操作 1 創建-表結構 2 查詢-所有表結構名稱 3 查詢-表結構內容 4 查詢-建表語句 5 添加-字段名數據類型 6 修改-字段數據類…

ARM嵌入式學習--第十天(UART)

--UART介紹 UART(Universal Asynchonous Receiver and Transmitter)通用異步接收器,是一種通用串行數據總線,用于異步通信。該總線雙向通信,可以實現全雙工傳輸和接收。在嵌入式設計中,UART用來與PC進行通信,包括與監控…

面試題-消失的數字-異或

消失的數字 數組nums包含從0到n的所有整數,但其中缺了一個。請編寫代碼找出那個缺失的整數。你有辦法在 O(n) 時間內完成嗎? 示例: 輸入:[3,0,1] 輸出:2 int missingNumber(int* nums, int numsSize) {}分析 本題對…

數據結構與算法之棧: LeetCode 1685. 有序數組中差絕對值之和 (Ts版)

有序數組中差絕對值之和 https://leetcode.cn/problems/sum-of-absolute-differences-in-a-sorted-array/description/ 描述 給你一個 非遞減 有序整數數組 nums 請你建立并返回一個整數數組 result,它跟 nums 長度相同,且result[i] 等于 nums[i] 與數…

筆試-排列組合

應用 一個長度為[1, 50]、元素都是字符串的非空數組,每個字符串的長度為[1, 30],代表非負整數,元素可以以“0”開頭。例如:[“13”, “045”,“09”,“56”]。 將所有字符串排列組合,拼起來組成…

Python3 OS模塊中的文件/目錄方法說明十七

一. 簡介 前面文章簡單學習了 Python3 中 OS模塊中的文件/目錄的部分函數。 本文繼續來學習 OS 模塊中文件、目錄的操作方法:os.walk() 方法、os.write()方法 二. Python3 OS模塊中的文件/目錄方法 1. os.walk() 方法 os.walk() 方法用于生成目錄樹中的文件名&a…

[Java]抽象類

1. 什么是抽象類? 1.1 定義: 抽象類是一個不能實例化的類,它是用來作為其他類的基類的。抽象類可以包含抽象方法和非抽象方法。抽象方法沒有方法體,子類必須重寫這些方法并提供具體的實現。抽象類可以有構造方法、成員變量、靜態…

css三角圖標

案例三角&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><s…