今天就跟大家聊聊有關(guān)在Linux中創(chuàng)建自定義腳本和創(chuàng)建systemd服務(wù)單元文件的方法是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
創(chuàng)新互聯(lián)公司長期為數(shù)千家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為鄂爾多斯企業(yè)提供專業(yè)的成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計,鄂爾多斯網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
前言
systemd是Linux操作系統(tǒng)的系統(tǒng)和服務(wù)管理器。當(dāng)您從存儲庫安裝任何應(yīng)用程序時,它會將服務(wù)單元文件放入systemd目錄中,您不應(yīng)直接修改這些文件。
systemd單元文件將在以下三個目錄中找到:
/usr/lib/systemd/system/:安裝軟件包時刪除的systemd單元文件。
/run/systemd/system/:在運行時創(chuàng)建的systemd單元文件。
/etc/systemd/system/:由“systemctl enable”命令創(chuàng)建的systemd單元文件以及為擴展服務(wù)而添加的單元文件。
有時您可能需要為自定義應(yīng)用程序或守護程序或腳本創(chuàng)建服務(wù)單元文件。有很多參數(shù)可以添加,但我們只會添加幾個值以使單元文件更簡單以便更好地理解。
例如:要在systemd系統(tǒng)啟動時運行自定義腳本,您需要創(chuàng)建一個自定義服務(wù)單元文件。
創(chuàng)建自定義腳本
以下shell腳本將在文件中寫入歡迎消息,如下所示:
$ sudo vi /usr/sbin/welcome.sh
#!/bin/bash
echo 'Welcome to Linux WORLD..!!!' >> /tmp/welcome.txt
參考:在Linux系統(tǒng)中運行.sh文件的兩種方法。
創(chuàng)建systemd單元文件
您需要在“/etc/systemd/system/”目錄下創(chuàng)建自定義服務(wù)單元文件,因為這是為自定義腳本保留的。‘/etc/systemd/system’中的任何單元文件都會覆蓋‘/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
為了演示這一點,我們將創(chuàng)建一個名為“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ù)單位的簡短描述。當(dāng)您執(zhí)行“systemctl status UNIT.service”命令時,描述會出現(xiàn)在服務(wù)單元名稱旁邊。
After:定義單元啟動的順序?!癱ustom.service”單元只有在“network.target”單元啟動后才會啟動。
2、Section-2:
Service:“Service”部分提供有關(guān)如何控制服務(wù)的說明。
Type:定義systemd服務(wù)的類型。它與“Type=simple”相同,但同時守護進程希望在準(zhǔn)備就緒時向systemd發(fā)送信號。
ExecStart:它用于啟動服務(wù),其中包括實際服務(wù)可執(zhí)行文件的完整路徑。
3、Section-3:
Install:“Install”部分提供了有關(guān)如何安裝systemd服務(wù)的說明。
WantedBy:“WantedBy”設(shè)置指示應(yīng)該在哪個目標(biāo)下啟動給定的服務(wù)單元。在這個例子中,custom.service使用了multi-user.target,所以systemd在啟動時加載multi-user.target時會啟動custom.service。
將可執(zhí)行權(quán)限設(shè)置為“custom.service”:
$ sudo chmod a+x /etc/systemd/system/custom.service
要向systemd添加新服務(wù),請運行:
$ sudo systemctl daemon-reload
要啟動custom.service,請運行:
$ sudo systemctl start custom.service
要在啟動時啟用custom.service,請運行:
$ sudo systemctl enable custom.service
最后重新啟動系統(tǒng)以檢查custom.service是否通過驗證輸出文件在啟動時按預(yù)期運行腳本:
$ sudo reboot
是的,它運作良好:
$ cat /tmp/welcome.txt
Welcome to Linux WORLD..!!!
Linux是一種免費使用和自由傳播的類UNIX操作系統(tǒng),是一個基于POSIX的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng),使用Linux能運行主要的Unix工具軟件、應(yīng)用程序和網(wǎng)絡(luò)協(xié)議。
看完上述內(nèi)容,你們對在Linux中創(chuàng)建自定義腳本和創(chuàng)建systemd服務(wù)單元文件的方法是什么有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。