溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Centos7中Systemd的Unit文件配置

發(fā)布時間:2021-08-31 11:50:40 來源:億速云 閱讀:118 作者:chen 欄目:系統(tǒng)運維

本篇內(nèi)容介紹了“Centos7中Systemd的Unit文件配置”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

Systemd使用單元(Units)來管理系統(tǒng)服務和程序。系統(tǒng)單元使用配置文件來控制其相關(guān)操作。單元配置文件有三種類型:默認單元配置文件,系統(tǒng)特定的單元配置文件和運行時的單元配置文件。

下面列出了三種類型的單元配置文件所在路徑:

  • 默認單元配置文件 - /usr/lib/systemd/system

  • 運行時的配置文件 - /run/systemd/system

  • 系統(tǒng)特定的配置文件 - /etc/systemd/system

默認單元配置文件,當安裝新軟件包時,在安裝過程中,單元配置文件會在/usr/lib/systemd/system目錄中生成。

運行時單元配置文件,分別在units啟動和停止時,會自動生成和刪除。

系統(tǒng)特定的配置文件包含定制的單元配置。通過這些配置文件,用戶可以覆蓋units的默認行為。

當我們對系統(tǒng)服務和程序的狀態(tài)進行任何更改時,例如:start, stop, enable,  和disable時,systemd讀取并執(zhí)行其單元配置文件。按照以下順序檢查單元配置文件。

系統(tǒng)特定的單元配置文件、運行時單元配置文件、默認單元配置文件。

例如,如果一個units配置文件在著三個路徑下面都存在,則僅使用 系統(tǒng)特定的配置文件 - /etc/systemd/system。

Unit配置文件書寫格式

一個單元配置文件包含控制該單元的所有必需信息,例如;啟動Units文件的路徑,在Units之前和之后需要啟動的 service/units  的名稱,文檔、手冊的位置,依賴項信息,沖突信息等。

Unit配置文件中的信息通常分為三部分。[Unit],[Type], [Install]。

下面尋找一個Unit配置文件來解釋:

[root@localhost ~]# cat /usr/lib/systemd/system/sshd.service  [Unit] Description=OpenSSH server daemon Documentation=man:sshd(8) man:sshd_config(5) After=network.target sshd-keygen.target Wants=sshd-keygen.target  [Service] Type=notify EnvironmentFile=-/etc/crypto-policies/back-ends/opensshserver.config EnvironmentFile=-/etc/sysconfig/sshd ExecStart=/usr/sbin/sshd -D $OPTIONS $CRYPTO_POLICY ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure RestartSec=42s  [Install] WantedBy=multi-user.target

Centos7中Systemd的Unit文件配置

Unit部分

該部分通常包含 描述、文檔、與其他程序依賴的設(shè)置、包括在什么服務 之前 或者 之后 啟動該Units的設(shè)置等。

Description: 該語句提供簡要的描述。可以在systemctl list-units或者systemctl status  [Units]時看到描述。

Documentation: 該語句提供手冊(幫助文檔)頁面的位置以及訪問手冊頁面的命令。

After: 該語句列出了在該單元之后應激活的單元。僅僅是規(guī)范服務啟動的順序,并沒有強制要求啟動。

Before: 該語句列出了在該單元之前應激活的單元。僅僅是規(guī)范服務啟動的順序,并沒有強制要求啟動。

Wants: 定義該單元啟動之后還需要啟動哪些unit。

Requires: 明確了定義該單元需要在哪個單元啟動之前才能啟動,如果前面的unit沒有啟動,那么該unit也不會被啟動。

Conflicts: 該語句列出了在啟動該單元之前必須停止的單元/服務。

一個單元的After/Before語句定義了該單元應該啟動的順序。一個單元的want/Requires語句定義了該單元的依賴關(guān)系。

Type部分

該部分表示Unit的類型。類型有[Service],[Socket],[Timer],[Mount],[Path]等類型,本文中使用的是sshd.service當例子,所以這邊就使用[Service]類型來介紹。

下面列舉常用語句:

Type : 表示啟動的類型,有以下幾種類型:simple為默認值、forking、oneshot等類型。

EnvironmentFile: 可以有多個該語句、后面跟配置文件。

ExecStart: 后面接啟動的語句

ExecStop: 后面接停止服務的語句

ExecReload: 后面接重啟服務的語句

KillMode: 該語句如果是process,當終止進程時,它會終止主程序。如果時none時,則不會關(guān)閉程序。

Install部分

該部分時將此Unit安裝到哪一個target中去。常用會安裝在multi-user.target

WantedBy:  自動啟動該Unit的Target名稱。例如,如果在此語句中看到multi-user.target,則意味著當系統(tǒng)進入“multi-user.target”運行級別時,此Unit將自動啟動。

可以看到,當執(zhí)行systemctl enable  sshd.service時,會將sshd.service從/usr/lib/systemd/system目錄中創(chuàng)建超鏈接到/etc/systemd/system/multi-user.target.wants下面。

Centos7中Systemd的Unit文件配置

“Centos7中Systemd的Unit文件配置”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI