kdumpctl: Add reload support
Add reload support to kdumpctl, reload will simply unload current loaded kexec crash kernel and initramfs, and load it again. Changes in /etc/sysconfig/kdump will take effect with kdumpctl reload, but reloading will not check the content of /etc/kdump.conf and won't rebuild anything. reload is fast, the only time-consuming part of kdumpctl reload is loading kernel and initramfs with kexec which is always necessary. Signed-off-by: Kairui Song <kasong@redhat.com> Acked-by: Dave Young <dyoung@redhat.com>
This commit is contained in:
parent
80357ee9b4
commit
b34ce3a7b4
@ -7,6 +7,7 @@ DefaultDependencies=no
|
||||
Type=oneshot
|
||||
ExecStart=/usr/bin/kdumpctl start
|
||||
ExecStop=/usr/bin/kdumpctl stop
|
||||
ExecReload=/usr/bin/kdumpctl reload
|
||||
RemainAfterExit=yes
|
||||
StartLimitInterval=0
|
||||
|
||||
|
59
kdumpctl
59
kdumpctl
@ -283,6 +283,16 @@ get_pcs_cluster_modified_files()
|
||||
|
||||
setup_initrd()
|
||||
{
|
||||
KDUMP_BOOTDIR=$(check_boot_dir "${KDUMP_BOOTDIR}")
|
||||
|
||||
if [ -z "$KDUMP_KERNELVER" ]; then
|
||||
kdump_kver=`uname -r`
|
||||
else
|
||||
kdump_kver=$KDUMP_KERNELVER
|
||||
fi
|
||||
|
||||
kdump_kernel="${KDUMP_BOOTDIR}/${KDUMP_IMG}-${kdump_kver}${KDUMP_IMG_EXT}"
|
||||
|
||||
DEFAULT_INITRD="${KDUMP_BOOTDIR}/initramfs-`uname -r`.img"
|
||||
DEFAULT_INITRD_BAK="${KDUMP_BOOTDIR}/.initramfs-`uname -r`.img.default"
|
||||
if [ $DEFAULT_DUMP_MODE == "fadump" ]; then
|
||||
@ -533,16 +543,8 @@ check_rebuild()
|
||||
local _force_no_rebuild force_no_rebuild="0"
|
||||
local ret system_modified="0"
|
||||
|
||||
KDUMP_BOOTDIR=$(check_boot_dir "${KDUMP_BOOTDIR}")
|
||||
|
||||
if [ -z "$KDUMP_KERNELVER" ]; then
|
||||
kdump_kver=`uname -r`
|
||||
else
|
||||
kdump_kver=$KDUMP_KERNELVER
|
||||
fi
|
||||
|
||||
kdump_kernel="${KDUMP_BOOTDIR}/${KDUMP_IMG}-${kdump_kver}${KDUMP_IMG_EXT}"
|
||||
setup_initrd
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
return 1
|
||||
fi
|
||||
@ -1004,6 +1006,42 @@ start()
|
||||
echo "Starting kdump: [OK]"
|
||||
}
|
||||
|
||||
reload()
|
||||
{
|
||||
check_current_status
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Kdump is not running: [WARNING]"
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [ $DEFAULT_DUMP_MODE == "fadump" ]; then
|
||||
stop_fadump
|
||||
else
|
||||
stop_kdump
|
||||
fi
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Stopping kdump: [FAILED]"
|
||||
return 1
|
||||
fi
|
||||
|
||||
echo "Stopping kdump: [OK]"
|
||||
|
||||
setup_initrd
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Starting kdump: [FAILED]"
|
||||
return 1
|
||||
fi
|
||||
|
||||
start_dump
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Starting kdump: [FAILED]"
|
||||
return 1
|
||||
fi
|
||||
|
||||
echo "Starting kdump: [OK]"
|
||||
}
|
||||
|
||||
stop_fadump()
|
||||
{
|
||||
echo 0 > $FADUMP_REGISTER_SYS_NODE
|
||||
@ -1087,6 +1125,9 @@ main ()
|
||||
esac
|
||||
exit $EXIT_CODE
|
||||
;;
|
||||
reload)
|
||||
reload
|
||||
;;
|
||||
restart)
|
||||
stop
|
||||
start
|
||||
|
Loading…
Reference in New Issue
Block a user