Hi Kairui
On 10/25/18 at 02:21pm, Kairui Song wrote:
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
kdump.service | 1 + kdumpctl | 59 +++++++++++++++++++++++++++++++++++++++++++-------- 2 files changed, 51 insertions(+), 9 deletions(-)
diff --git a/kdump.service b/kdump.service index 5144597..f888dd6 100644 --- a/kdump.service +++ b/kdump.service @@ -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
diff --git a/kdumpctl b/kdumpctl index ece406f..5e139e9 100755 --- a/kdumpctl +++ b/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 [ $? == 1 ]; then
I would be better to use -eq
echo "Kdump is not running: [WARNING]"
return 0
- fi
- if [ $DEFAULT_DUMP_MODE == "fadump" ]; then
stop_fadump
- else
stop_kdump
- fi
- if [ $? != 0 ]; then
better to use -ne, according to below doc, != is used more for pattern matching
echo "Stopping kdump: [FAILED]"
return 1
- fi
- echo "Stopping kdump: [OK]"
- setup_initrd
- if [ $? != 0 ]; then
echo "Starting kdump: [FAILED]"
return 1
- fi
- start_dump
- if [ $? != 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;;
-- 2.17.1
Thanks Dave