摘要:系統啟動和服務器守護進程管理器,負責在系統啟動或運行時,激活系統資源,服務器進程和其他進程,根據管理,字母是守護進程的縮寫,這個名字的含義就是它要守護整個系統。該命令可用于查看系統狀態和管理系統及服務。
博文參考
http://www.178linux.com/48343 http://www.178linux.com/48674 http://www.178linux.com/48563 http://www.jinbuguo.com/systemd/index.htmlsystemd簡介
Systemd是由紅帽公司的一名叫做Lennart Poettering的員工開發,systemd是Linux系統中最新的初始化系統(init),它主要的設計目的是克服Sys V 固有的缺點,提高系統的啟動速度,systemd和upstart是競爭對手,ubantu上使用的是upstart的啟動方式,centos7上使用systemd替換了Sys V,Systemd目錄是要取代Unix時代依賴一直在使用的init系統,兼容SysV和LSB的啟動腳本,而且能夠在進程啟動中更有效地引導加載服務。 system:系統啟動和服務器守護進程管理器,負責在系統啟動或運行時,激活系統資源,服務器進程和其他進程,根據管理,字母d是守護進程(daemon)的縮寫,systemd這個名字的含義就是它要守護整個系統。systemd新特性
系統引導時實現服務并行啟動 按需啟動守護進程 自動化的服務依賴關系管理 同時采用socket式與D-Bus總線式激活服務 系統狀態快照和恢復 利用Linux的cgroups監視進程 維護掛載點和自動掛載點 各服務間基于依賴關系進行精密控制systemd核心概念
unit表示不同類型的sytemd對象,通過配置文件進行標識和配置,文件中主要包含了系統服務,監聽socket、保存的系統快照以及其他與init相關的信息
配置文件:
/usr/lib/systemd/system:每個服務最主要的啟動腳本設置,類似于之前的/etc/initd.d
/run/system/system:系統執行過程中所產生的服務腳本,比上面的目錄優先運行
/etc/system/system:管理員建立的執行腳本,類似于/etc/rc.d/rcN.d/Sxx類的功能,比上面目錄優先運行,在三者之中,此目錄優先級最高
Unit類型systemctl -t help 查看unit類型 service unit:文件擴展名為.service,用于定義系統服務 target unit:文件擴展名為.target,用于模擬實現“運行級別” device unit:.device,,用于定義內核識別的設備 mount unit .mount,定義文件系統掛載點 socket unit .socket,用于標識進程間通信用的socket文件,也可以在系統啟動時,延遲啟動服務,實現按需啟動 snapshot unit:.snapshot,關系系統快照 swap unit:.swap,用于表示swap設備 automount unit:.automount,文件系統的自動掛載點如:/misc目錄 path unit:.path,用于定義文件系統中的一個文件或目錄使用,常用于當文件系統變化時,延遲激活服務,如spool目錄 time :.timer由systemd管理的計時器
使用systemctl控制單元時,通常需要使用單元文件的全名,包括擴展名,但是有些單元可以在systemctl中使用簡寫方式 如果無擴展名,systemctl默認把擴展名當做.service。例如netcfg和netcfg.service是等同的 掛載點會自動轉化為相應的.mount單元,例如/home等價于home.mount 設備會自動轉化為相應的.device單元,所以/dev/sd2等價于dev-sda2.device關鍵特性
基于socket的激活機制:socket與服務進程分離 基于D-Bus的激活機制 基于device的激活機制 基于path的激活機制 系統快照:保存各unit的當前狀態信息于持久存儲設備中想后兼容sysv init腳本不兼容
systemctl命令固定不變,不可擴展 非由systemd啟動的服務,systemctl無語與之通信和控制,如:使用之前sys v風格管理的進程就無法收 systemd控制systemd基本工具
監視和控制systemd的主要命令是systemctl。該命令可用于查看系統狀態和管理系統及服務。
管理服務
命令:systemctl command name.service 啟動:service name start –>systemctl start name.service 停止:service name stop –>systemctl stop name.service 重啟:service name restart–>systemctl restart name.service 狀態:service name status–>systemctl status name.service
條件式重啟
已啟動才重啟,否則不做任何操作 systemctl try-restart name.service
重載或重啟服務
先加載,然后再啟動 systemctl reload-or-try-restart name.service
禁止自動和手動啟動
systemctl mask name.service 執行此條命令實則創建了一個鏈接ln -s "/dev/null" "/etc/systemd/system/sshd.service"
取消禁止
systemctl unmask name.service 刪除此前創建的鏈接
服務查看
查看某服務當前激活與否的狀態 systemctl is-active name.service 如果啟動會顯示active,否則會顯示unknown
查看所有已經激活的服務
systemctl list-units –t|–type service
查看所有服務
設定某服務開機啟動
chkconfig name on–>systemctl enable name.service
設定某服務開機禁止啟動
chkconfig name off –>systemctl disable name.service
查看所有服務的開機自啟狀態
chkconfig –list–>systemctl list-unit-files -t service
用來列出該服務在那些運行級別下啟用或禁用
chkconfig sshd –list –>ls /etc/system/system/*.wants/sshd.service
[root@www ~]# ls /etc/systemd/system/*.wants/sshd.service
/etc/systemd/system/multi-user.target.wants/sshd.service
查看服務是否開機自啟
systemctl is-enabled name.servcice
查看服務的依賴關系
systemctl list-dependencies
查看啟動失敗的服務
systemctl -failed -t service
查看服務單元的啟用和禁用狀態
systemctl list-unit-files –t=service
殺死進程
systemctl kill 進程名
服務狀態
systemctl list-units -t service -a 顯示狀態
loaded:unit配置文件已處理
active(running):一次或多次持續處理的運行
active(exited):成功完成一次性的配置
active(waiting):運行中,等待一個事件
inactive:不運行
enabled:開機啟動
disabled:開機不啟動
static:開機不啟動,但可以被另一個啟用的服務激活
運行級別
target units:
unit配置文件:.target 以target結尾的文件
ls /usr/lib/system/system/*.target
systemctl list-unit-files -type target -all
0–>runlevel0.target, poweroff.target
1–>runlevel1.target, rescue.target
2–>runlevel2.target, muti-user.target
3–>runlevel3.target, mutil-user.target
4–>runlevel4.target, multi-user.target
5–>runlevel5.target, graphical.target
6–>runlevel6.target, reboot.target
查看依賴性
systemctl list-dependencies graphical.target
查看默認運行級別
systemctl get-default 在Sys V風格的系統上是查看/etc/inittab文件其中有一條id:5:initdefault:
級別切換
systemctl isolate muti-user.target 注意:只有當/lib/system/system/*.target文件中AllowIsolate=yes時才能奇幻(修改文件需執行systemctl daemon-reload生效)
設定默認運行級別
systemctl set-default muti-user.target 實則將multi-user.target鏈接至default.target ls –l /etc/system/system/default.target
進入緊急救援模式
systemctl rescue
切換至emergency模式
systemctl emergency
在systemd風格的系統上還能使用sysv風格系統上的關機,重啟等命令,指示將該命令鏈接到systemctl的一個軟鏈接
關機:systemctl halt systemctl poweroff 重啟:systemctl reboot 掛起:systemctl suspend 休眠:systemctl hibernate 休眠并掛起:systemctl hybrid-sleepCentOS7引導順序
1、 CentOS啟動流程:POST –> Boot Sequence –> Bootloader –> kernel + initramfs(initrd) –> rootfs–> /sbin/init
UEFi或BIOS初始化,運行POST開機自檢
選擇啟動設備
引導裝載程序, centos7是grub2
加載裝載程序的配置文件:/etc/grub.d/ /etc/default/grub /boot/grub2/grub.cfg(注:一般上修改grub.cfg配置文件,是直接修改/etc/default/grub,然后使用命令#grub2-mkconfig /boot/grub2/grub.cfg來生成修改 )
使用systemctl控制單元時,通常需要使用單元文件的全名,包括擴展名,但是有些單元可以在systemctl中使用簡寫方式
如果無擴展名,systemctl默認把擴展名當做.service。例如netcfg和netcfg.service是等同的
掛載點會自動轉化為相應的.mount單元,例如/home等價于home.mount
設備會自動轉化為相應的.device單元,所以/dev/sd2等價于dev-sda2.device
加載initramfs驅動模塊
加載內核選項
內核初始化,centos7使用systemd代替init
執行initrd.target所有單元,包括掛載/etc/fstab
從initramfs根文件系統切換到磁盤根目錄
systemd執行默認target配置,配置文件/etc/systemd/default.target /etc/systemd/system/
systemd執行sysinit.target初始化系統及basic.target準備操作系統
systemd啟動multi-user.target下的本機與服務器服務
systemd執行multi-user.target下的/etc/rc.d/rc.local
systemd執行multi-user.target下的getty.target及登入服務
systemd執行graphical需要的服務(此為圖形界面所有)
unit文件格式以#開頭的行后面的內容會被認為是注釋 相關布爾值,1、yes、on、ture都是開啟,0、no、off、false都是關閉 時間單位默認是秒Unit文件組成
[Unit]:定義與Unit類型無關的通用選項,用于提供unit的掃描信息,unit行為及依賴關系等 [Service]:與特定類型相關的專用選項;此處為Service類型 [Install]:定義由“systemctl enable及systemctl disable”命令在實現服務啟用或禁用時用到的一些選項unit段常用選項
Description:描述信息 After:定義unit的啟動次序,表示當前unit應該晚育那些unit啟動,其功能與before相反 Requires:依賴到的其他units,強依賴,被一來的units無法激活時,當前unit即無法激活 Wants:依賴到的其他units,弱依賴 Conflicts:定義units間的沖突關系Service段常用選項
Type:定義硬性ExecStart及相關參數的功能的unit進程啟動類型 simple:默認值;這個daemon主要有ExecStart接的指令串來啟動,啟動后常駐于內存中 forking:由ExecStart啟動的程序透過spawns延伸出其他子程序來作為此daemon的主要服務。原生父程序在啟動結束后就會終止 onshot:用于執行一項任務,隨后立即退出的服務,不會常駐于內存中 notify:與simple相同,但約定服務會在就緒后想systemd發送一個信號,需要配合NotifyAccess來讓Systemd接收消息 idle:與simple類似,要執行這個daemon必須要所有的工作都順利執行完畢后才會執行。這類的daemon通常是開機到最后才只能即可的服務 EnvironmentFile:環境配置文件 ExeStart:指明啟動unit要運行命令或腳本的絕對路徑 ExeStartPre:ExecStart前運行 ExeStartPost:ExecStart后運行 ExecStop:指明停止unit要運行的命令或腳本 Restart:當設定Restart=1時,則當次daemon服務意外終止后,會在此自動啟動此服務Install段常用選項
Alias:別名,可使用systemctl command Alial.service RequiredBy:被那些units所依賴,強依賴 WantedBy:被那些units所依賴,弱依賴 Also:安裝本服務的時候還要安裝別的相關服務 注意:對于新創建的unit文件,或者修改了的unit文件,要通知systemd重載次配置文件,而后可以選擇重啟 systemctl daemon-reload案例
vim /etc/systemd/system/bak.service [Unit] Description=backup my etc Requires=atd.service [Service] Type=simple ExecStart=/bin/bash -c "echo /testdir/bak.sh|at now" [Install] WantedBy=multi-user.target systemctl daemon-reload systemctl start bak設置內核參數
在系統啟動時,進入內核參數修改,修改只影響當次啟動,在啟動時在linux16行后添加systemd.unit=desired.target systemd.unit=emergency.target進入救援模式 system.unit=recure.target 進入緊急救援模式,功能比emergency多 修改完成后使用ctrl+x啟動進入相應的模式啟動排錯
文件系統損壞 先嘗試自動修復,如果失敗則需要進入emergency 模式,提示用戶修復 在/etc/fstab 不存在對應的設備和UUID,等待一段時間,如果不可用,進入emergecy shell 注釋哪行即可 在/etc/fstab不存在對應掛載點 systemd嘗試創建掛載點,否則提示進入emergecy shell 在/etc/fstab不正確的掛載選項 提示進入emergecy shell破解root口令
啟動時任意鍵暫停啟動 按e鍵進入編輯模式 將光標移動linux16開始的行,添加內核參數rd.break 按ctrl-x啟動 mount -o remount,rw /sysroot chroot /sysroot passwd root touch /.autorelabel exit reboot 等待系統重新打標簽后即可進入系統,這時候root的密碼已經更改修復grub2
GRUB“the Grand Unified Bootloader” 引導提示時可以使用命令行界面 可從文件系統引導 主要配置文件/boot/grub2/grub.cfg 修復配置文件 grub2-mkconfig > /boot/grub2/grub.cfg 修復grub grub2-install /dev/sda BIOS環境 grub2-install UEFI環境 grub2-mkconfig -o grub.cfg 重啟
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/67368.html
摘要:系統啟動和服務器守護進程管理器,負責在系統啟動或運行時,激活系統資源,服務器進程和其他進程,根據管理,字母是守護進程的縮寫,這個名字的含義就是它要守護整個系統。該命令可用于查看系統狀態和管理系統及服務。 博文參考 http://www.178linux.com/48343 http://www.178linux.com/48674 http://www.178linux.com/485...
摘要:系統啟動和服務器守護進程管理器,負責在系統啟動或運行時,激活系統資源,服務器進程和其他進程,根據管理,字母是守護進程的縮寫,這個名字的含義就是它要守護整個系統。該命令可用于查看系統狀態和管理系統及服務。 博文參考 http://www.178linux.com/48343 http://www.178linux.com/48674 http://www.178linux.com/485...
Linux系統作為一個開源的操作系統,服務于大中小企業。那么,作為一個服務器系統它的穩定性是要求非常高的,但是在使用中出現無法遠程但系統是正常服務的情況,下面介紹CentOS系統的云服務器中如何重啟、查看、啟動ssh服務等操作。 ? centos7 與centos6 在重啟 啟動 自啟動等方面命令有些許的變化。linux系統之CentOS 7系列重啟/查看/自動啟動SSH等操作命令: ...
閱讀 2925·2023-04-26 02:22
閱讀 2286·2021-11-17 09:33
閱讀 3127·2021-09-22 16:06
閱讀 1062·2021-09-22 15:54
閱讀 3530·2019-08-29 13:44
閱讀 1905·2019-08-29 12:37
閱讀 1316·2019-08-26 14:04
閱讀 1905·2019-08-26 11:57