溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

在Linux中創(chuàng)建自定義腳本和創(chuàng)建systemd服務(wù)單元文件的方法是什么

發(fā)布時(shí)間:2022-01-19 17:27:30 來源:億速云 閱讀:703 作者:kk 欄目:系統(tǒng)運(yùn)維

今天就跟大家聊聊有關(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系統(tǒng)

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è)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(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)容。

AI