chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
util: make string static
[elogind.git]
/
src
/
shutdown.c
diff --git
a/src/shutdown.c
b/src/shutdown.c
index 35426d2115c86f9410b11f7fbb4e4a892bd9540a..23b9f1b545ef204e49790d3057e1be8d01ada795 100644
(file)
--- a/
src/shutdown.c
+++ b/
src/shutdown.c
@@
-336,6
+336,8
@@
int main(int argc, char *argv[]) {
if (retries >= FINALIZE_ATTEMPTS)
log_error("Too many interations, giving up.");
if (retries >= FINALIZE_ATTEMPTS)
log_error("Too many interations, giving up.");
+ execute_directory(SYSTEM_SHUTDOWN_PATH, NULL, NULL);
+
sync();
if (cmd == LINUX_REBOOT_CMD_KEXEC) {
sync();
if (cmd == LINUX_REBOOT_CMD_KEXEC) {
@@
-349,7
+351,7
@@
int main(int argc, char *argv[]) {
log_warning("kexec failed. Falling back to normal reboot.");
} else {
/* Child */
log_warning("kexec failed. Falling back to normal reboot.");
} else {
/* Child */
- const char *args[
5] = { KEXEC_BINARY_PATH, "-e", "-f", "-x
", NULL };
+ const char *args[
3] = { "/sbin/kexec", "-e
", NULL };
execv(args[0], (char * const *) args);
return EXIT_FAILURE;
}
execv(args[0], (char * const *) args);
return EXIT_FAILURE;
}
@@
-362,7
+364,6
@@
int main(int argc, char *argv[]) {
r = -errno;
error:
r = -errno;
error:
- sync();
log_error("Critical error while doing system shutdown: %s", strerror(-r));
freeze();
log_error("Critical error while doing system shutdown: %s", strerror(-r));
freeze();