Thanks, good suggestion, will update it.
On Mon, Oct 29, 2018 at 6:54 PM Dave Young <dyoung(a)redhat.com> wrote:
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(a)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
--
Best Regards,
Kairui Song