systemctl: if no logind, don't try to schedule shutdown

If logind is not supported, don't try to schedule a shutdown,
immediately poweroff. This is the behavior indicated by the current
message given to the user, but the command is returning an error. I
believe this was broken on this commit:
7f96539d45
This commit is contained in:
Samuel Morris 2018-08-28 10:40:51 -04:00 committed by Zbigniew Jędrzejewski-Szmek
parent a204d54b8e
commit c68867da32
1 changed files with 4 additions and 5 deletions

View File

@ -8511,7 +8511,6 @@ static int halt_now(enum action a) {
static int logind_schedule_shutdown(void) {
#if ENABLE_LOGIND
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
char date[FORMAT_TIMESTAMP_MAX];
const char *action;
@ -8563,10 +8562,6 @@ static int logind_schedule_shutdown(void) {
if (!arg_quiet)
log_info("Shutdown scheduled for %s, use 'shutdown -c' to cancel.", format_timestamp(date, sizeof(date), arg_when));
return 0;
#else
log_error("Cannot schedule shutdown without logind support, proceeding with immediate shutdown.");
return -ENOSYS;
#endif
}
static int halt_main(void) {
@ -8577,7 +8572,11 @@ static int halt_main(void) {
return r;
if (arg_when > 0)
#if ENABLE_LOGIND
return logind_schedule_shutdown();
#else
log_error("Cannot schedule shutdown without logind support, proceeding with immediate shutdown.");
#endif
if (geteuid() != 0) {
if (arg_dry_run || arg_force > 0) {