您好,登錄后才能下訂單哦!
這篇文章跟大家分析一下“在Linux系統下修改現有systemd單元文件的方法是什么”。內容詳細易懂,對“在Linux系統下修改現有systemd單元文件的方法是什么”感興趣的朋友可以跟著小編的思路慢慢深入來閱讀一下,希望閱讀后能夠對大家有所幫助。下面跟著小編一起深入學習“在Linux系統下修改現有systemd單元文件的方法是什么”的知識吧。
我們將展示如何在Linux系統下修改現有的單元文件,內容有:什么是單元文件、擴展默認單元配置、覆蓋默認的單元配置。
前言
系統上存儲單元文件的主要目錄有三個,但“/etc/systemd/system/”目錄是為系統管理員創建或自定義的單元文件保留的。
1、/usr/lib/systemd/system/:安裝軟件包時刪除的systemd單元文件。
2、/run/systemd/system/:在運行時創建的systemd單元文件。
3、/etc/systemd/system/:由“systemctl enable”命令創建的systemd單元文件以及為擴展服務而添加的單元文件。
參考:在Linux中創建自定義腳本和創建systemd服務單元文件的方法。
什么是單元文件?
單元文件包含描述單元并定義其行為的配置指令。幾個systemctl命令在后臺處理單元文件,使單元文件按預期運行。
單元文件使用以下通用語法:
unit_name.type_extension
httpd.service
1、unit_name (httpd) 代表單位名稱。
2、type_extension(service)標識單元類型。
為了演示這一點,我們將以下兩個參數添加到“httpd.service”文件中:
Restart=on-failure
RestartSec=5s
可以通過兩種方式修改現有的systemd單元文件:
1、擴展默認單元配置。
2、覆蓋默認的單元配置。
1、擴展默認單元配置
本節介紹如何使用其他配置選項擴展默認單元文件。
例如,要編輯“httpd.service”單元文件,請運行:
$ sudo systemctl edit httpd.service
這會在“/etc/systemd/system/httpd.service.d/override.conf”下創建一個覆蓋片段文件,并在您的文本編輯器中打開它。向httpd.service單元文件添加新參數,保存文件時,新參數將添加到現有服務文件中。
要應用對單元所做的更改,請執行:
$ sudo systemctl daemon-reload
重啟httpd服務加載新的服務配置(如果修改運行的單元文件,必須重新聲明單元文件):
$ sudo systemctl restart httpd
要恢復更改,請執行以下步驟。
要刪除片段,請運行:
$ sudo rm -r /etc/systemd/system/httpd.service.d
要在不重新啟動系統的情況下將更改應用于單元文件,請執行“daemon-reload”選項重新加載所有單元文件并重新創建整個依賴關系樹:
$ sudo systemctl daemon-reload
要檢查擴展或修改的單元文件,請運行以下命令輸出清楚地表明文件“apache2.service”已擴展:
$ systemd-delta [EQUIVALENT] /etc/systemd/system/default.target → /usr/lib/systemd/system/default.target [OVERRIDDEN] /etc/systemd/system/sshd.service → /usr/lib/systemd/system/sshd.service Files /usr/lib/systemd/system/sshd.service and /etc/systemd/system/sshd.service are identical [EXTENDED] /usr/lib/systemd/system/NetworkManager.service → /usr/lib/systemd/system/NetworkManager.service.d/NetworkManager-ovs.conf [EXTENDED] /usr/lib/systemd/system/apache2.service → /etc/systemd/system/apache2.service.d/override.conf [EXTENDED] /usr/lib/systemd/system/btrfs-balance.timer → /etc/systemd/system/btrfs-balance.timer.d/schedule.conf [EXTENDED] /usr/lib/systemd/system/btrfs-scrub.timer → /etc/systemd/system/btrfs-scrub.timer.d/schedule.conf [EXTENDED] /usr/lib/systemd/system/nfs-client.target → /usr/lib/systemd/system/nfs-client.target.d/nfs.conf [EXTENDED] /usr/lib/systemd/system/rpc-gssd.service → /usr/lib/systemd/system/rpc-gssd.service.d/options.conf [EXTENDED] /usr/lib/systemd/system/rpc-statd-notify.service → /usr/lib/systemd/system/rpc-statd-notify.service.d/options.conf [EXTENDED] /usr/lib/systemd/system/rpc-statd.service → /usr/lib/systemd/system/rpc-statd.service.d/options.conf [EXTENDED] /usr/lib/systemd/system/rpc-svcgssd.service → /usr/lib/systemd/system/rpc-svcgssd.service.d/options.conf [EXTENDED] /usr/lib/systemd/system/systemd-sysctl.service → /usr/lib/systemd/system/systemd-sysctl.service.d/50-kernel-uname_r.conf 12 overridden configuration files found.
2、覆蓋默認的單元配置
本節介紹如何覆蓋默認單元配置。
如果要在更新提供單元文件的包后保留更改,請編輯完整的單元文件,如下所示:
$ sudo systemctl edit --full httpd.service
這會將當前單元文件加載到編輯器中。保存文件后,systemctl將在“/etc/systemd/system/httpd.service”創建一個文件。
要應用對單元所做的更改,請執行:
$ sudo systemctl daemon-reload
重啟httpd服務加載新的服務配置(如果修改運行的單元文件,必須重新聲明單元文件):
$ sudo systemctl restart httpd
請注意:“/etc/systemd/system”中的任何單元文件都會覆蓋“/lib/systemd/system”中的相應文件。
要恢復更改或返回設備的默認配置,請刪除以下自定義配置文件。
要刪除完整的修改單元文件,請運行:
$ sudo rm /etc/systemd/system/httpd.service
要在不重新啟動系統的情況下將更改應用于單元文件,請執行“daemon-reload”選項重新加載所有單元文件并重新創建整個依賴關系樹:
$ sudo systemctl daemon-reload
要檢查覆蓋或修改的單元文件,請運行以下命令清楚地顯示文件“apache2.service”已被覆蓋:
$ systemd-delta [OVERRIDDEN] /etc/systemd/system/apache2.service → /usr/lib/systemd/system/apache2.service --- /usr/lib/systemd/system/apache2.service 2021-07-08 22:20:27.000000000 +0530 +++ /etc/systemd/system/apache2.service 2021-07-09 14:36:06.989928469 +0530 @@ -13,6 +13,8 @@ KillMode=mixed TasksMax=infinity NotifyAccess=all +Restart=on-failure +RestartSec=5s [Install] WantedBy=multi-user.target [EQUIVALENT] /etc/systemd/system/default.target → /usr/lib/systemd/system/default.target [OVERRIDDEN] /etc/systemd/system/sshd.service → /usr/lib/systemd/system/sshd.service Files /usr/lib/systemd/system/sshd.service and /etc/systemd/system/sshd.service are identical [EXTENDED] /usr/lib/systemd/system/NetworkManager.service → /usr/lib/systemd/system/NetworkManager.service.d/NetworkManager-ovs.conf [EXTENDED] /usr/lib/systemd/system/btrfs-balance.timer → /etc/systemd/system/btrfs-balance.timer.d/schedule.conf [EXTENDED] /usr/lib/systemd/system/btrfs-scrub.timer → /etc/systemd/system/btrfs-scrub.timer.d/schedule.conf [EXTENDED] /usr/lib/systemd/system/nfs-client.target → /usr/lib/systemd/system/nfs-client.target.d/nfs.conf [EXTENDED] /usr/lib/systemd/system/rpc-gssd.service → /usr/lib/systemd/system/rpc-gssd.service.d/options.conf [EXTENDED] /usr/lib/systemd/system/rpc-statd-notify.service → /usr/lib/systemd/system/rpc-statd-notify.service.d/options.conf [EXTENDED] /usr/lib/systemd/system/rpc-statd.service → /usr/lib/systemd/system/rpc-statd.service.d/options.conf [EXTENDED] /usr/lib/systemd/system/rpc-svcgssd.service → /usr/lib/systemd/system/rpc-svcgssd.service.d/options.conf [EXTENDED] /usr/lib/systemd/system/systemd-sysctl.service → /usr/lib/systemd/system/systemd-sysctl.service.d/50-kernel-uname_r.conf 13 overridden configuration files found.
Linux是一種免費使用和自由傳播的類UNIX操作系統,是一個基于POSIX的多用戶、多任務、支持多線程和多CPU的操作系統,使用Linux能運行主要的Unix工具軟件、應用程序和網絡協議。
關于在Linux系統下修改現有systemd單元文件的方法是什么就分享到這里啦,希望上述內容能夠讓大家有所提升。如果想要學習更多知識,請大家多多留意小編的更新。謝謝大家關注一下億速云網站!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。