***/
#include <getopt.h>
-#include <assert.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
r = sd_bus_default_system(&bus);
if (r < 0) {
- log_error("Failed to connect to bus: %s", strerror(-r));
+ log_error_errno(r, "Failed to connect to bus: %m");
return EXIT_FAILURE;
}
fd = inhibit(bus, &error);
if (fd < 0) {
- log_error("Failed to inhibit: %s", bus_error_message(&error, -r));
+ log_error("Failed to inhibit: %s", bus_error_message(&error, fd));
return EXIT_FAILURE;
}
pid = fork();
if (pid < 0) {
- log_error("Failed to fork: %m");
+ log_error_errno(errno, "Failed to fork: %m");
return EXIT_FAILURE;
}
close_all_fds(NULL, 0);
execvp(argv[optind], argv + optind);
- log_error("Failed to execute %s: %m", argv[optind]);
+ log_error_errno(errno, "Failed to execute %s: %m", argv[optind]);
_exit(EXIT_FAILURE);
}
- r = wait_for_terminate_and_warn(argv[optind], pid);
+ r = wait_for_terminate_and_warn(argv[optind], pid, true);
return r < 0 ? EXIT_FAILURE : r;
}