[systemd-devel] [PATCH 2/2] Adding binary to shutdown the system

Harald Hoyer harald at redhat.com
Thu Oct 7 02:46:44 PDT 2010


On 10/06/2010 04:15 PM, Gustavo Sverzut Barbieri wrote:
> From: Fabiano Fidencio<fidencio at profusion.mobi>
>
> This functions are working as follows:
>      - Send a SIGTERM to all processes that may be finished
>      - Send a SIGKILL to all processes that still live and may be finished
>      - Try to unmount all mount points
>      - Try to remount read-only all mount points that can't be umounted
>      - Umount all swap devices
>      - Umount and detach all loopback devices
>      - Call [poweroff|halt|reboot|kexec]
>
> TODO:
>      - Umount device-mapper.
>      - Make log work. So far it is being useless as we do not parse
>        /etc/systemd/system.conf, kernel command line but just
>        environment, however we're executed by init and thus have no
>        useful variables. Forcing it to target=kmsg/console and
>        level=debug also does not produce any output, however writing to
>        /dev/console does work (hack used during debug).
....
> +                } else {
> +                        const char *args[5] = {KEXEC_BINARY_PATH, "-e", "-x", "-f", NULL};
> +                        execv(args[0], (char * const *) args);
> +                        return EXIT_FAILURE;
> +                }

 From the kexec manpage:

        -x (--no-ifdown)
               Shut  down  the  running  kernel,  but  restore the interface on
               reload. (If this option is used, it must be specified last.)

So, does it have to be:

const char *args[5] = {KEXEC_BINARY_PATH, "-e", "-f", "-x", NULL};

??


More information about the systemd-devel mailing list