偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

如何玩轉(zhuǎn) systemd:從基礎(chǔ)到進(jìn)階

運(yùn)維
Systemd通過(guò)單元文件(Unit files)來(lái)描述和管理不同的系統(tǒng)資源和服務(wù)。Systemd 支持 12 種 Unit 文件類(lèi)型。下面就將我們生產(chǎn)環(huán)境中常用到的Service單元文件展開(kāi)講解。

一、概述

systemd是一個(gè)系統(tǒng)和服務(wù)管理器,systemd是Linux系統(tǒng)中一套基本的構(gòu)建模塊,提供了一系列工具的集合,用于管理后臺(tái)服務(wù)、狀態(tài)查詢、日志歸檔、設(shè)備管理、電源管理和定時(shí)任務(wù)等許多職責(zé)。

systemd作為PID為1的進(jìn)程,是系統(tǒng)中所有其他進(jìn)程的父進(jìn)程。

systemctl是一個(gè)命令行工具,用于與systemd進(jìn)行交互。通過(guò)systemctl,用戶可以啟動(dòng)、停止、重啟、查看狀態(tài)以及管理系統(tǒng)中的服務(wù)單元

systemd作為后臺(tái)服務(wù)運(yùn)行,而systemctl則提供了用戶與systemd交互的接口。用戶通過(guò)systemctl發(fā)送指令,systemd執(zhí)行相應(yīng)的操作

systemctl的命令實(shí)際上是向systemd發(fā)送請(qǐng)求,告訴systemd要做什么。

systemd通過(guò)單元文件(Unit files)來(lái)描述和管理不同的系統(tǒng)資源和服務(wù)。Systemd 支持 12 種 Unit 文件類(lèi)型。下面就將我們生產(chǎn)環(huán)境中常用到的Service單元文件展開(kāi)講解。

二、service文件

定義軟件服務(wù)的文件通常是systemd服務(wù)單元文件,具有.service后綴,這些文件通常位于以下目錄:

# 系統(tǒng)或用戶自定義的配置文件
/etc/systemd/system/
# 軟件運(yùn)行時(shí)生成的配置文件
/run/systemd/system
# 系統(tǒng)或第三方軟件安裝時(shí)添加的配置文件。
/usr/lib/systemd/system

Systemd 默認(rèn)從目錄 /etc/systemd/system/ 讀取配置文件。但是,里面存放的大部分文件都是符號(hào)鏈接,指向目錄 /usr/lib/systemd/system/,真正的配置文件存放在那個(gè)目錄。

1. service組成部分

service文件主要三大模塊:

[Unit]:  #定義與Unit類(lèi)型無(wú)關(guān)的通用選項(xiàng),用于提供unit的描述信息、unit行為及依賴關(guān)系等

[Service]: #定義如何啟動(dòng)、停止、重啟當(dāng)前服務(wù)。

[Install]: #定義如何安裝這個(gè)配置文件,即怎樣做到開(kāi)機(jī)啟動(dòng)。

2. Unit部分

Description:    # 對(duì)服務(wù)的簡(jiǎn)單描述
After:      # 在哪些服務(wù)之后啟動(dòng)
Before:     # 在哪些服務(wù)器啟動(dòng)之前啟動(dòng)
Requires:    # 可以指定服務(wù)依賴于哪些服務(wù)(強(qiáng)依賴)
Wants:     # 可以指定服務(wù)依賴于哪些服務(wù)(弱依賴)

3. Service部分

EnvironmentFile:  # 指定當(dāng)前服務(wù)啟動(dòng)的環(huán)境變量
ExecStart:  # 指定服務(wù)啟動(dòng)時(shí)執(zhí)行的命令或腳本
ExecStop:   #  指明停止服務(wù)要運(yùn)行的命令或腳本
RestartSec:    # 指定服務(wù)在重啟時(shí)等待的時(shí)間,單位為秒
ExecReload:    # 指明重啟服務(wù)要運(yùn)行的命令或腳本
Restart:     # 重啟設(shè)置
KillMode:    # 指定停止的方式
Restart:    # 指定重啟時(shí)的類(lèi)型
Type:     # 指定啟動(dòng)類(lèi)型,

type的可選值:

simple  # 指定ExecStart字段的進(jìn)程為主進(jìn)程
forking  # 指定以fork() 子進(jìn)程執(zhí)行ExecStart字段的進(jìn)程
oneshot  # 執(zhí)行一次
notify  # 啟動(dòng)后發(fā)送會(huì)發(fā)送通知信號(hào)通知systemd
idle  # 等其他任務(wù)結(jié)束后才運(yùn)行

Restart的可選值:

no:    # 退出后不會(huì)重啟
on-success:    # 當(dāng)進(jìn)程正常退出時(shí)(退出碼為0) 執(zhí)行重啟
on-failure:    # 當(dāng)進(jìn)程不正常退出時(shí)(退出碼不為0) 執(zhí)行重啟
on-abnormal:   # 當(dāng)被信號(hào)終止和超時(shí)執(zhí)行重啟on-abort:      當(dāng)收到?jīng)]有捕捉到的信號(hào)終止時(shí)執(zhí)行重啟
on-watchdog:   # 當(dāng)看門(mén)狗超時(shí)時(shí)執(zhí)行重啟
always:        # 一直重啟

KillMode可選值:

control-group:   # 殺掉當(dāng)前進(jìn)程中所有的進(jìn)程
process:      # 殺掉當(dāng)前進(jìn)程的主進(jìn)程
mixed:    # 主進(jìn)程將收到 SIGTERM 信號(hào),子進(jìn)程收到 SIGKILL 信號(hào)
none:    # 不殺掉任何進(jìn)程

4. Install部分

Alias:    # 別名,可使用systemctl command Alias.service
RequiredBy:   # 被哪些units所依賴,強(qiáng)依賴
WantedBy:   # 被哪些units所依賴,弱依賴
Also:   # 安裝本服務(wù)的時(shí)候還要安裝別的相關(guān)服務(wù)
Install:  # 一般填為WantedBy=multi-user.target

三、service文件樣例

將自己部署的nginx注冊(cè)為系統(tǒng)服務(wù):

[Unit]Description=The nginx web and reverse proxy server
Documentation=https://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
#啟動(dòng)檢測(cè)命令
ExecStartPre=/data/nginx/sbin/nginx -t
#啟動(dòng)命令
ExecStart=/data/nginx/sbin/nginx -c /data/nginx/conf/nginx.conf
#重載配置文件命令
ExecReload=/data/nginx/sbin/nginx -s reload
#停止命令
ExecStop=/data/nginx/sbin/nginx -s quit

[Install]
WantedBy=multi-user.target

將部署的mysql注冊(cè)為系統(tǒng)服務(wù):

[Unit]
Description=Mysql
After=syslog.target network.target remote-fs.target nss-lookup.target 

[Service]
Type=forking
#指定PID文件
PIDFile=/data/mysql/data/centos-linux.shared.pid
#啟動(dòng)MySQL
ExecStart=/data/mysql/support-files/mysql.server start
#重載
ExecReload=/bin/kill -s HUP $MAINPID
#停止服務(wù)
ExecStop=/data/mysql/support-files/mysql.server 
stopPrivateTmp=false 
[Install]
WantedBy=multi-user.target

四、systemctl命令合集

#啟動(dòng)服務(wù)
systemctl start name.service
#停止服務(wù)
systemctl stop name.service
#重啟服務(wù)
systemctl restart name.service
#查看服務(wù)狀態(tài)
systemctl status name.service
#禁止自動(dòng)和手動(dòng)啟動(dòng)
systemctl mask name.service
#取消禁止
systemctl unmask name.service
#查看某服務(wù)當(dāng)前激活與否的狀態(tài)
systemctl is-active name.service
#查看所有已經(jīng)激活的服務(wù)
systemctl list-units --type|-t service
#查看所有服務(wù)
systemctl list-units --type service --all
#設(shè)定某服務(wù)開(kāi)機(jī)自啟,相當(dāng)于chkconfig name on
systemctl enable name.service
#設(shè)定某服務(wù)開(kāi)機(jī)禁止啟動(dòng):相當(dāng)于chkconfig name off
systemctl disable name.service
#查看所有服務(wù)的開(kāi)機(jī)自啟狀態(tài),相當(dāng)于chkconfig --list
systemctl list-unit-files --type service
#用來(lái)列出該服務(wù)在哪些運(yùn)行級(jí)別下啟用和禁用:chkconfig –list namels /etc/systemd/system/*.wants/name.service
#查看服務(wù)是否開(kāi)機(jī)自啟
systemctl is-enabled name.service
#列出失敗的服務(wù)
systemctl --failed --type=service
#查看服務(wù)的依賴關(guān)系
systemctl list-dependencies name.service
#殺掉進(jìn)程
systemctl kill unitname
#重新加載配置文件
systemctl daemon-reload
#關(guān)機(jī)
systemctl halt
#重啟服務(wù)器
systemctl reboot
責(zé)任編輯:趙寧寧 來(lái)源: 運(yùn)維李哥不背鍋
相關(guān)推薦

2023-09-19 23:07:53

Python算法

2025-06-16 07:30:00

WinForm串口通信開(kāi)發(fā)

2024-08-05 00:00:50

ES6JavaScriptClass

2021-12-12 18:15:06

Python并發(fā)編程

2023-10-12 15:38:50

FreeDOS命令

2022-03-23 08:45:20

系統(tǒng)性能CPU

2013-12-18 13:30:19

Linux運(yùn)維Linux學(xué)習(xí)Linux入門(mén)

2024-01-11 11:25:22

2024-07-03 10:09:29

2023-12-26 08:40:06

分類(lèi)算法數(shù)據(jù)分析Python

2025-02-11 07:40:27

2015-11-24 10:46:06

LinuxNetworkManasystemd-net

2021-02-05 09:00:00

開(kāi)發(fā)IT事件管理

2024-10-17 09:57:30

2025-06-03 08:35:00

命令Linux日志分析

2022-07-15 16:31:49

Postman測(cè)試

2024-10-22 16:59:07

2023-10-26 08:25:39

KubernetesKubeadm

2024-05-28 08:46:50

遞歸算法題函數(shù)

2016-09-06 20:46:53

JavaScript遞歸與數(shù)列Web
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)