+ if (unexpected) {
+ if (UNIT_IS_INACTIVE_OR_DEACTIVATING(os) && UNIT_IS_ACTIVE_OR_ACTIVATING(ns))
+ retroactively_start_dependencies(u);
+ else if (UNIT_IS_ACTIVE_OR_ACTIVATING(os) && UNIT_IS_INACTIVE_OR_DEACTIVATING(ns))
+ retroactively_stop_dependencies(u);
+ }
+
+ /* Some names are special */
+ if (UNIT_IS_ACTIVE_OR_RELOADING(ns)) {
+ if (unit_has_name(u, SPECIAL_DBUS_SERVICE)) {
+ /* The bus just might have become available,
+ * hence try to connect to it, if we aren't
+ * yet connected. */
+ bus_init_system(u->meta.manager);
+ bus_init_api(u->meta.manager);
+ }
+
+ if (unit_has_name(u, SPECIAL_SYSLOG_SERVICE))
+ /* The syslog daemon just might have become
+ * available, hence try to connect to it, if
+ * we aren't yet connected. */
+ log_open_syslog();
+
+ if (u->meta.type == UNIT_MOUNT)
+ /* Another directory became available, let's
+ * check if that is enough to write our utmp
+ * entry. */
+ manager_write_utmp_reboot(u->meta.manager);
+
+ if (u->meta.type == UNIT_TARGET)
+ /* A target got activated, maybe this is a runlevel? */
+ manager_write_utmp_runlevel(u->meta.manager, u);
+
+ } else if (!UNIT_IS_ACTIVE_OR_RELOADING(ns)) {
+
+ if (unit_has_name(u, SPECIAL_SYSLOG_SERVICE))
+ /* The syslog daemon might just have
+ * terminated, hence try to disconnect from
+ * it. */
+ log_close_syslog();
+
+ /* We don't care about D-Bus here, since we'll get an
+ * asynchronous notification for it anyway. */
+ }