-----Original Message-----
From: Kairui Song [mailto:kasong@redhat.com]
Sent: Tuesday, November 12, 2019 6:05 PM
To: Onitsuka, Shinichi/鬼束 伸一 <onitsuka.shinic(a)fujitsu.com>
Cc: kexec(a)lists.fedoraproject.org
Subject: Re: [PATCH 1/3] dracut-kdump.sh: Execute the binary and script files
in /etc/kdump/{pre.d,post.d}.
On Wed, Nov 6, 2019 at 12:26 PM onitsuka.shinic(a)fujitsu.com
<onitsuka.shinic(a)fujitsu.com> wrote:
>
> This patch executes the binary and script files in /etc/kdump/{pre.d,post.d}
> just like kdump_pre or kdump_post directive written in /etc/kdump.conf.
>
> Signed-off-by: shin-onitsuka <onitsuka.shinic(a)fujitsu.com>
>
> ---
> dracut-kdump.sh | 36 ++++++++++++++++++++++++++++++++++++
> 1 file changed, 36 insertions(+)
>
> diff --git a/dracut-kdump.sh b/dracut-kdump.sh
> index 2ae1c7c..51a1f73 100755
> --- a/dracut-kdump.sh
> +++ b/dracut-kdump.sh
> @@ -30,15 +30,51 @@ do_dump()
>
> do_kdump_pre()
> {
> + local _ret
> +
> if [ -n "$KDUMP_PRE" ]; then
> "$KDUMP_PRE"
> + _ret=$?
> + if [ $_ret -ne 0 ]; then
> + echo "kdump: $KDUMP_PRE exited with $_ret status"
> + return $_ret
> + fi
> + fi
> +
> + if [ -d /etc/kdump/pre.d ]; then
> + for file in `find /etc/kdump/pre.d -type f | sort`; do
> + "$file"
> + _ret=$?
> + if [ $_ret -ne 0 ]; then
> + echo "kdump: $file exited with $_ret status"
> + return $_ret
> + fi
> + done
> fi
> }
Currently the behavior is:
# kdump_pre <binary | script>
# - Works like the "kdump_post" directive, but instead of running
# after the dump process, runs immediately before it.
# Exit status of this binary is interpreted as follows:
# 0 - continue with dump process as usual
# non 0 - reboot the system
After this patch, if any one of the scripts in pre.d failed, rest of
the scripts will be skipped, and kdump will reboot the system.
Better to doc this somewhere.
And this whole new thing needs a proper doc too.
In addition to the Kairui's comment,
please mention explicitly in the doc the order of execution of
kdump_pre and files in /etc/kdump/pre.d, i.e. the command specified
in kdump_pre is first executed and then the rest of the commands
under /etc/kdump/pre.d directory are executed.
>
> do_kdump_post()
> {
> + local _ret
> +
> + if [ -d /etc/kdump/post.d ]; then
> + for file in `find /etc/kdump/post.d -type f | sort`; do
> + "$file" "$1"
> + _ret=$?
> + if [ $_ret -ne 0 ]; then
> + echo "kdump: $file exited with $_ret status"
> + return $_ret
> + fi
> + done
> + fi
> +
> if [ -n "$KDUMP_POST" ]; then
> "$KDUMP_POST" "$1"
> + _ret=$?
> + if [ $_ret -ne 0 ]; then
> + echo "kdump: $KDUMP_POST exited with $_ret status"
> + return $_ret
> + fi
> fi
> }
>
> --
> 1.8.3.1
--
Best Regards,
Kairui Song
_______________________________________________
kexec mailing list -- kexec(a)lists.fedoraproject.org
To unsubscribe send an email to kexec-leave(a)lists.fedoraproject.org
Fedora Code of Conduct:
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines:
https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives:
https://lists.fedoraproject.org/archives/list/kexec@lists.fedoraproject.or
g