From: Michal Sekletar Date: Tue, 19 Jun 2012 08:00:54 +0000 (+0200) Subject: systemd: return error when asked to stop unknown unit X-Git-Tag: v186~144 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=9722ef2565fdddd64deaa99d7665ca0fdafed1a5;ds=sidebyside systemd: return error when asked to stop unknown unit Command systemctl stop foo.service, will print error message, when foo.service is unknown to systemd, i.e. there is no unit file loaded for this service. https://bugzilla.redhat.com/show_bug.cgi?id=732874 --- diff --git a/src/core/dbus-manager.c b/src/core/dbus-manager.c index e96929a55..452432703 100644 --- a/src/core/dbus-manager.c +++ b/src/core/dbus-manager.c @@ -1587,6 +1587,11 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection, job_type = JOB_RELOAD; } + if (job_type == JOB_STOP && u->load_state == UNIT_ERROR && unit_active_state(u) == UNIT_INACTIVE) { + dbus_set_error(&error, BUS_ERROR_NO_SUCH_UNIT, "Unit %s not loaded.", name); + return bus_send_error_reply(connection, message, &error, -EPERM); + } + if ((job_type == JOB_START && u->refuse_manual_start) || (job_type == JOB_STOP && u->refuse_manual_stop) || ((job_type == JOB_RESTART || job_type == JOB_TRY_RESTART) &&