diff options
Diffstat (limited to 'extra/kexec-tools/kexec')
-rwxr-xr-x | extra/kexec-tools/kexec | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/extra/kexec-tools/kexec b/extra/kexec-tools/kexec new file mode 100755 index 000000000..bef5b5ef3 --- /dev/null +++ b/extra/kexec-tools/kexec @@ -0,0 +1,45 @@ +#!/bin/bash + +[ -f /etc/conf.d/kexec ] && . /etc/conf.d/kexec + +. /etc/rc.conf +. /etc/rc.d/functions + +case "$1" in + start) + stat_busy "Enabled loading kernel for Kexec into running kernel on reboot" + add_daemon kexec + stat_done + ;; + + stop|load) + if [ "$RUNLEVEL" = "6" -o "$1" = "load" ]; then + stat_busy "Loading kernel for Kexec into running kernel" + [ -f "$KPATH" ] || stat_fail + [ -f "$INITRD" ] && _INITRD="--initrd=$INITRD" + /sbin/kexec -l $KPATH --append="root=$ROOTPART $KPARAM" $_INITRD > /dev/null 2>&1 + else + stat_busy "Skipping loading kernel for Kexec into running kernel" + fi + if [ $? -eq 0 ] ; then + rm_daemon kexec + stat_done + else + stat_fail + fi + ;; + + unload) + stat_busy "Unloading Kexec kernel from running kernel" + /sbin/kexec -u + if [ $? -eq 0 ] ; then + stat_done + else + stat_fail + fi + ;; + + *) + echo "usage: $0 {start|stop|load|unload}" +esac +exit 0 |