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