今天就跟大家聊聊有關在Linux中創建自定義腳本和創建systemd服務單元文件的方法是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
前言
systemd是Linux操作系統的系統和服務管理器。當您從存儲庫安裝任何應用程序時,它會將服務單元文件放入systemd目錄中,您不應直接修改這些文件。
systemd單元文件將在以下三個目錄中找到:
/usr/lib/systemd/system/:安裝軟件包時刪除的systemd單元文件。
/run/systemd/system/:在運行時創建的systemd單元文件。
/etc/systemd/system/:由“systemctl enable”命令創建的systemd單元文件以及為擴展服務而添加的單元文件。
有時您可能需要為自定義應用程序或守護程序或腳本創建服務單元文件。有很多參數可以添加,但我們只會添加幾個值以使單元文件更簡單以便更好地理解。
例如:要在systemd系統啟動時運行自定義腳本,您需要創建一個自定義服務單元文件。
創建自定義腳本
以下shell腳本將在文件中寫入歡迎消息,如下所示:
$ sudo vi /usr/sbin/welcome.sh
#!/bin/bash
echo 'Welcome to Linux WORLD..!!!' >> /tmp/welcome.txt
參考:在Linux系統中運行.sh文件的兩種方法。
創建systemd單元文件
您需要在“/etc/systemd/system/”目錄下創建自定義服務單元文件,因為這是為自定義腳本保留的。‘/etc/systemd/system’中的任何單元文件都會覆蓋‘/lib/systemd/system’中的相應文件。
語法:systemd單元文件由三部分組成:
Section-1 [Unit] Parameter 1 . . Parameter N Section-2 [Service] Parameter 1 . . Parameter N Section-3 [Install] Parameter 1
為了演示這一點,我們將創建一個名為“custom.service”的systemd服務單元文件:
$ sudo vi /etc/systemd/system/custom.service
[Unit]
Description=example systemd custom service unit file
After=network.target
[Service]
Type=notify
ExecStart=/bin/bash /usr/sbin/welcome.sh
[Install]
WantedBy=multi-user.target
1、Section-1:
Unit:本節提供有關服務的基本信息。
Description:服務單位的簡短描述。當您執行“systemctl status UNIT.service”命令時,描述會出現在服務單元名稱旁邊。
After:定義單元啟動的順序?!癱ustom.service”單元只有在“network.target”單元啟動后才會啟動。
2、Section-2:
Service:“Service”部分提供有關如何控制服務的說明。
Type:定義systemd服務的類型。它與“Type=simple”相同,但同時守護進程希望在準備就緒時向systemd發送信號。
ExecStart:它用于啟動服務,其中包括實際服務可執行文件的完整路徑。
3、Section-3:
Install:“Install”部分提供了有關如何安裝systemd服務的說明。
WantedBy:“WantedBy”設置指示應該在哪個目標下啟動給定的服務單元。在這個例子中,custom.service使用了multi-user.target,所以systemd在啟動時加載multi-user.target時會啟動custom.service。
將可執行權限設置為“custom.service”:
$ sudo chmod a+x /etc/systemd/system/custom.service
要向systemd添加新服務,請運行:
$ sudo systemctl daemon-reload
要啟動custom.service,請運行:
$ sudo systemctl start custom.service
要在啟動時啟用custom.service,請運行:
$ sudo systemctl enable custom.service
最后重新啟動系統以檢查custom.service是否通過驗證輸出文件在啟動時按預期運行腳本:
$ sudo reboot
是的,它運作良好:
$ cat /tmp/welcome.txt
Welcome to Linux WORLD..!!!
Linux是一種免費使用和自由傳播的類UNIX操作系統,是一個基于POSIX的多用戶、多任務、支持多線程和多CPU的操作系統,使用Linux能運行主要的Unix工具軟件、應用程序和網絡協議。
看完上述內容,你們對在Linux中創建自定義腳本和創建systemd服務單元文件的方法是什么有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。