diff options
author | Thadeu Lima de Souza Cascardo <cascardo@debian.org> | 2019-12-17 12:50:32 -0300 |
---|---|---|
committer | Thadeu Lima de Souza Cascardo <cascardo@debian.org> | 2019-12-17 12:50:32 -0300 |
commit | de1d1c7b723752d36a2f119bed804ad78fe981ba (patch) | |
tree | 65089f4c59221bdcaad9a9fd5a81ab6895c4f210 | |
parent | 88c35672e6f3e3b8f635b8bde7a7e3ac2e6ac550 (diff) |
kdump-config: implement try-reload
Use a lock file to allow try-reload to be run concurrently, and verify that
kdump is loaded before trying to unload and load again.
Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@debian.org>
-rwxr-xr-x | debian/kdump-config.in | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/debian/kdump-config.in b/debian/kdump-config.in index c5df75a..0493c26 100755 --- a/debian/kdump-config.in +++ b/debian/kdump-config.in @@ -65,6 +65,7 @@ sys_kexec_crash=/sys/kernel/kexec_crash_loaded sys_fadump_enabled=/sys/kernel/fadump_enabled sys_fadump_registered=/sys/kernel/fadump_registered kexec_cmd_file=$KDUMP_COREDIR/kexec_cmd +lock_file=$KDUMP_COREDIR/kdump_lock # DUMP_MODE = kdump/fadump # The default dump mode is kdump. @@ -914,6 +915,25 @@ unload() fi } +reload() +{ + unload + load +} + +condreload() +{ + local sys_loaded="$sys_kexec_crash" + if [ "$DUMP_MODE" == "fadump" ] ; then + check_fadump_support + sys_loaded="$sys_fadump_registered" + fi + flock 9 + if [ -e $sys_loaded -a `cat $sys_loaded` -eq 1 ] ; then + reload + fi +} + case "$1" in test) DRY_RUN="true" @@ -943,8 +963,10 @@ case "$1" in unload ;; reload) - unload - load + reload + ;; + condreload|try-reload) + condreload 9>$lock_file ;; status) if [ "$DUMP_MODE" == "fadump" ]; then |