centos 7 의 systemd 를 깊이 분석 하 다.
POST --> Boot Sequence --> Bootloader --> kernel+initramfs(initrd) --> rootfs --> /sbin/init
init:
CentOS 5: SysV init
CentOS 6: Upstart
CentOS 7: Systemd
systemd
, , , 。
:
socket D-Bus
:unit
unit systemd , 。
、 socket 、 init 。
:
/usr/lib/systemd/system:
, /etc/init.d/
/run/systemd/system:
, /usr/lib/systemd/system
/etc/systemd/system:
, /etc/rc.d/rcN.d/Sxx , /run/systemd/system
:
socket : socket
d-bus :
device :
path :
: unit , sysv init
:
systemctl ,
systemd ,systemctl
유닛 타 입
Systemctl Ct 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 ,
Path unit: .path, , , , :spool
서비스 관리'centos 7 의 거의 모든 서 비 스 는 systemctl 로 service 유닛 을 관리 하고 centos 7 이전의 service 는 동시에 호 환 됩 니 다.
런 레벨
target units:
unit :
.target,
ls /usr/lib/systemd/system/*.target
systemctl list-unit-files --type target --all
:
0 ==> runlevel0.target, poweroff.target
1 ==> runlevel1.target, rescue.target
2 ==> runlevel2.target, multi-user.target
3 ==> runlevel3.target, multi-user.target
4 ==> runlevel4.target, multi-user.target
5 ==> runlevel5.target, graphical.target
6 ==> runlevel6.target, reboot.target
:
systemctl list-dependencies graphical.target
:
init N ==> systemctl isolate name.target
systemctl isolate multi-user.target
: /lib/systemd/system/*.target AllowIsolate=yes , systemctl daemon-reload
target:
systemctl list-units --type target
:
/etc/inittab ==> systemctl get-default
runlevel
who -r
:
/etc/inittab ==> systemctl set-default name.target
systemctl set-default multi-user.target
ls Cl /etc/systemd/system/default.target
:
init 1
systemctl rescue
emergency :
systemctl emergency
:
init ,poweroff ,halt ,reboot systemctl
:systemctl halt 、systemctl poweroff
:systemctl reboot
:systemctl suspend
: :systemctl hibernate
:systemctl hybrid-sleep
CentOS 7 가이드 시작 순서
UEFi BIOS , POST
, centos7 grub2
:/etc/grub.d/ ,/etc/default/grub ,/boot/grub2/grub.cfg
initramfs
,centos7 systemd init
initrd.target , /etc/fstab
initramfs
systemd /etc/systemd/system
systemd target , /etc/systemd/system/default.target
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
서비스 단위 파일 형식
/etc/systemd/system :
/usr/lib/systemd/system :
1 、yes 、on 、true
0 、no 、off、false
, (ms ) (m )
service unit file :
[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 。
oneshot : simple , ,
dbus : simple , daemon D-Bus , . BusNname=
notify : 。 NotifyAccess Systemd
idle : simple , daemon 。 daemon
EnvironmentFile :
ExecStart : unit
ExecStartPre: ExecStart
ExecStartPost: ExecStart
ExecStop : unit
Restart : Restart=1 , daemon ,
Install :
Alias : , systemctl command Alias.service
RequiredBy : units ,
WantedBy : units ,
Also :
:
unit , unit , systemd ,
systemctl daemon-reload
:
vim /etc/systemd/system/bak.service
[Unit]
Description=backup /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
systemd.unit=recure.target
recure.target emergency ,
시작 오류
, , emergency shell,
/etc/fstab UUID , , emergency shell
/etc/fstab systemd , emergency shell.
/etc/fstab emergency shell
CentOS 7 의 루트 암 호 를 해독 합 니 다.
e
linux16 , rd.break
ctrl-x
mount Co remount,rw /sysroot
chroot /sysroot
passwd root
touch /.autorelabel
exit
reboot
e
linux16 , rw init=/sysroot/bin/sh
ctrl-x
chroot /sysroot
passwd root
touch /.autorelabel
exit
reboot
GRUB 2 복구
GRUB “the Grand Unified Bootloader” ”
/boot/grub2/grub.cfg
grub2-mkconfig > /boot/grub2/grub.cfg
grub2-mkconfig -o /boot/grub2/grub.cfg
grub
grub2-install /dev/sda (BIOS )
grub2-install (UEFI )
vim /etc/default/grub
GRUB_DEFAULT=0
총결산위 에서 말 한 것 은 편집장 님 께 서 소개 해 주신 centos 7 의 systemd 입 니 다.여러분 께 도움 이 되 셨 으 면 좋 겠 습 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주세요.편집장 님 께 서 바로 답 해 드 리 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
CentOS7에서 GuestAdditions를 도입하여 마우스 통합 및 해상도 자동 크기 조정을 활성화합니다.CentOS7과 VirtualBox를 사용하여 가상 환경을 만들어 보았지만, 호스트 키 누르지 않으면 포인터가 원래 OS로 돌아가 이것없는 화면 조정 방법을 모르는 분을 향한 기사입니다. Windows10,64bit...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.