如何在CentOS 7上正确使用kexec和systemd?

前端之家收集整理的这篇文章主要介绍了如何在CentOS 7上正确使用kexec和systemd?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想用kexec来加速我的CentOS 7机器的重启.如何以与现有关机/重启系统目标完美集成的方式实现这一目标?这样做的正确(官方)方法是什么?
我找到了一种方法来制作一个运行良好的kexec加载脚本并将在grub中加载默认内核,这意味着它应该在内核更新后加载新内核.

File: /usr/bin/kexec-load

#!/usr/bin/env bash

GRUBBY_FILE="/var/log/grubby"
TMP=$(mktemp)

#  Command "grubby --default-kernel" has a bug/feature that fsyncs
#  after writting each line to a debug log file,making it slow (several seconds).
#  Workaround is to write to /dev/null instead.
if [ -e $GRUBBY_FILE ]
        then rm -f $GRUBBY_FILE
fi
ln -s /dev/null $GRUBBY_FILE
KERNEL_IMG=$(grubby --default-kernel)
unlink $GRUBBY_FILE

#  Get the detailed information of the default kernel (as seen by grub)
#  This will create a temporary file in /tmp
grubby --info=$KERNEL_IMG | grep -v title > $TMP
source $TMP
rm $TMP

#  Simple log to see if this script gets executed
date --rfc-3339=seconds >> /var/log/kexec

#  Load (prepare) the kernel for execution
kexec -l $kernel --initrd=$initrd --command-line="root=$root $args"

File: /etc/systemd/system/kexec-load.service

[Unit]
Description=loads the kernel
Documentation=man:kexec(8)
DefaultDependencies=no
Before=shutdown.target umount.target final.target

[Service]
Type=oneshot
ExecStart=/usr/bin/kexec-load

[Install]
WantedBy=kexec.target
$chmod +x /usr/bin/kexec-load
$systemctl enable kexec-load.service
$systemctl kexec

猜你在找的CentOS相关文章