搜尋
首頁系統教程Linux如何在SystemD中創建和運行新服務單元

幾天前,我遇到了32位CentOS 8分佈,並決定在較舊的32位系統上進行測試。啟動後,我發現了一個網絡連接問題。連接將下降,每次重新啟動後都需要手動修復。這促使我探索自動解決方案。本文詳細介紹瞭如何使用SystemD服務單元實現此目的。

在研究細節之前,讓我們簡要檢查SystemD服務單元及其功能。我們將介紹SystemD服務單元的基礎知識,它們與“目標”的交互以及配置服務單元以在啟動時執行腳本的過程。重點將放在實際步驟上。

什麼是SystemD服務單元?

SystemD服務單元是定義服務系統行為的配置文件。這可能包含旨在在啟動期間或特定引導階段運行的網絡服務,應用程序或腳本。

這些單元被組織到目標中,代表了引導過程中的里程碑。例如,在達到多用戶目標( Runlevel 3 )時,請先使用特定服務。將目標視為服務“”在各個引導階段進行合作。

要查看目標中活動的服務(例如, Graphical.target ),請使用systemctl命令:

 systemctl -type =服務

這將在當前目標中顯示所有活動服務。一些服務不斷運行;其他人執行一次並終止。

如何在SystemD中創建和運行新服務單元

監視服務狀態

要檢查服務的狀態(活動或無效),請使用systemctl status

 SystemCtl狀態FireWalld.Service

此命令檢查Firewalld的狀態。觀察其主動(運行)並啟用(重新啟動)狀態(自動啟動)狀態。

暫時停止服務(直到下一個引導):

 SystemCtl停止FireWalld.Service
SystemCtl狀態FireWalld.Service

這阻止了當前會議的防火牆,但並不能阻止將來重新啟動。

如何在SystemD中創建和運行新服務單元

啟用和禁用服務

要確保啟動時的服務自動啟動,請啟用它(在目標的“想要”文件夾中創建符號鏈接):

 SystemCtl啟用FireWalld.Service

通過:

 SystemCtl禁用防火牆

如何在SystemD中創建和運行新服務單元

創建自定義服務單元

要創建啟動時間腳本服務,請在/etc/systemd/system中創建一個新的服務單元。該目錄包含現有服務單元文件和目標文件夾。

 CD/ETC/SystemD/System
LS -L 

如何在SystemD中創建和運行新服務單元

使用VIM或類似編輯器創建connection.service

 vim連接。服務

添加以下內容:

 [單元]
描述=提出網絡連接
after = network.target

[服務]
execstart =/root/腳本/conup.sh

[安裝]
wantby =多用戶.target

解釋:

  • [Unit] :元數據;描述單元並指定network.target後的執行(確保網絡初始化)。
  • [Service] :定義命令( conup.sh腳本執行)。
  • [Install] :指定在multi-user.target上的加載。

在重新啟動時啟用自動啟動的服務:

 SystemCtl啟用連接。服務

通過檢查multi-user.target.wants驗證啟用:

 LS -L多用戶.target.wants/

connection.service服務符號鏈接應存在。現在,創建腳本。

如何在SystemD中創建和運行新服務單元

創建腳本

創建conup.sh腳本以還原網絡連接:

 CD /根
mkdir腳本
CD腳本
vi conup.sh

添加此行(假設接口為enp0s3 ):

 #! /bin/bash
NMCLI連接UP ENP0S3

使腳本可執行:

 chmod x conup.sh

現在已經準備好了。

SELINUX考慮(RHEL/CENTOS)

在基於RHEL的系統(CentOS,Rocky Linux)上,Selinux可能會阻止腳本執行,除非應用正確的安全性上下文。

暫時設置上下文:

 CHCON -T bin_t/root/scripts/conup.sh

對於永久解決方案:

 semanage fcontext -a -t bin_t“/root/scripts/conup.sh”
Restorecon -v/root/scripts/conup.sh

這樣可以確保在重新啟動或SELINUX策略更新後繼續執行腳本。

測試服務

通過手動啟動服務而無需重新啟動的測試:

 SystemCtl啟動連接。服務

如果成功,網絡連接應恢復。對於更簡單的腳本(例如, touch /tmp/testbootfile ),請檢查/tmp/testbootfile創建以確認服務執行。

結論

本指南對SystemD服務單元,其創建,管理和應用在自動化任務(例如啟動上的網絡連接恢復)中提供了全面的了解。這增強了系統自動化和效率。

以上是如何在SystemD中創建和運行新服務單元的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
說明Linux的開源性質及其與Windows的對比。說明Linux的開源性質及其與Windows的對比。Apr 28, 2025 am 12:03 AM

Linux的開源本質使其在社區參與、性能、安全性等方面優於Windows,但Windows在用戶友好性和軟件生態上更勝一籌。 1)Linux鼓勵社區貢獻,開發速度快;2)在服務器和嵌入式系統中性能更好;3)開源本質使其更安全;4)Windows用戶界面友好,軟件生態廣泛。

5個用於監視磁盤I/O性能的Linux工具5個用於監視磁盤I/O性能的Linux工具Apr 27, 2025 pm 04:45 PM

本指南探討了用於監視和故障排除磁盤I/O性能的基本Linux工具,這是對服務器速度和應用程序響應的關鍵度量。 磁盤I/O性能直接影響從和書面讀取數據的速度

在Linux中查找插入USB設備名稱的4種方法在Linux中查找插入USB設備名稱的4種方法Apr 27, 2025 pm 04:44 PM

對於新的Linux用戶,識別連接的設備至關重要,尤其是USB驅動器。 本指南提供了幾種命令行方法來確定USB設備的名稱,這對於格式化等任務必不可少。 雖然USB驅動器經常自動安裝(例如, /

如何在根(/)分區上修復'設備上沒有剩餘空間”如何在根(/)分區上修復'設備上沒有剩餘空間”Apr 27, 2025 pm 04:43 PM

Linux系統,特別是磁盤空間有限的系統,最常見的問題之一就是根分區(/)空間耗盡。 出現此問題時,您可能會遇到以下錯誤: No space left on device 別慌!這只是表示您的根目錄(/ 分區)已滿,這是一個常見問題,尤其是在磁盤空間有限的系統或全天候運行的服務器上。 發生這種情況時,您可能會遇到以下問題: 無法安裝或升級軟件包。 系統啟動失敗。 服務無法啟動。 無法寫入日誌或臨時文件。 本文將引導您完成識別問題、安全清理空間以及防止再次發生此問題的實用步驟。這些說明適用於初

2025年Linux的前16名記事本替代品2025年Linux的前16名記事本替代品Apr 27, 2025 pm 04:42 PM

本文探討了Linux用戶的一流記事本替代方案。 記事本雖然在Windows上很棒,但缺少Linux版本。 本指南提供了適合各種需求和偏好的各種選擇。 最高記錄的替代方案

如何在SystemD中創建和運行新服務單元如何在SystemD中創建和運行新服務單元Apr 27, 2025 pm 04:41 PM

幾天前,我遇到了32位CentOS 8分佈,並決定在較舊的32位系統上進行測試。 啟動後,我發現了一個網絡連接問題。連接將下降,每次重新啟動後都需要手動修復。這個公關

如何在Linux的硬盤上檢查不良扇區如何在Linux的硬盤上檢查不良扇區Apr 27, 2025 pm 04:40 PM

讓我們澄清什麼構成不良扇區或不良區塊:這是硬盤驅動器或閃存的一部分,它變得不可讀取或無法寫入,這通常是由於對磁盤表面的物理損害或閃爍的閃存閃存晶體管。 累積

如何強制CP命令無需提示即可覆蓋文件如何強制CP命令無需提示即可覆蓋文件Apr 27, 2025 pm 04:39 PM

CP命令(“複製”)是Linux和其他類似Unix的系統的基本工具,用於復製文件和目錄。 雖然對本地文件傳輸有效,但對於基於網絡的副本,SCP(安全副本)是首選的

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境