centos 7の中のsysteemeを深く分析します。
システム起動フロー
`centos 7のほとんどのサービスはsystemtelがservice unitを管理しています。centos 7の前のサービスはまだ互換性があります。
ランレベル
以上は小编が皆さんに绍介したcentos 7の中のsystemendです。皆さんに助けてほしいです。もし何か疑问があれば、メッセージをください。小编はすぐに皆さんに返事します。
POST --> Boot Sequence --> Bootloader --> kernel+initramfs(initrd) --> rootfs --> /sbin/init
init:
CentOS 5: SysV init
CentOS 6: Upstart
CentOS 7: 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のほとんどのサービスはsystemtelがservice unitを管理しています。centos 7の前のサービスはまだ互換性があります。
ランレベル
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
service unitファイルフォーマット
/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のrootパスワードを解読します。
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の中のsystemendです。皆さんに助けてほしいです。もし何か疑问があれば、メッセージをください。小编はすぐに皆さんに返事します。