chiark / gitweb /
sd-daemon: fix listening socket verification
[elogind.git] / src / unit.c
index 1959b1b940074d0ff23dd81ed3be72d511814f6a..012edd47a8277051bde18f930ba50beab170aa0f 100644 (file)
@@ -213,6 +213,9 @@ int unit_set_description(Unit *u, const char *description) {
 bool unit_check_gc(Unit *u) {
         assert(u);
 
+        if (u->meta.load_state == UNIT_STUB)
+                return true;
+
         if (UNIT_VTABLE(u)->no_gc)
                 return true;
 
@@ -531,7 +534,10 @@ int unit_add_exec_dependencies(Unit *u, ExecContext *c) {
         assert(u);
         assert(c);
 
-        if (c->std_output != EXEC_OUTPUT_KERNEL && c->std_output != EXEC_OUTPUT_SYSLOG)
+        if (c->std_output != EXEC_OUTPUT_KMSG &&
+            c->std_output != EXEC_OUTPUT_SYSLOG &&
+            c->std_error != EXEC_OUTPUT_KMSG &&
+            c->std_error != EXEC_OUTPUT_SYSLOG)
                 return 0;
 
         /* If syslog or kernel logging is requested, make sure our own
@@ -732,9 +738,10 @@ fail:
 }
 
 /* Errors:
- *         -EBADR:    This unit type does not support starting.
- *         -EALREADY: Unit is already started.
- *         -EAGAIN:   An operation is already in progress. Retry later.
+ *         -EBADR:     This unit type does not support starting.
+ *         -EALREADY:  Unit is already started.
+ *         -EAGAIN:    An operation is already in progress. Retry later.
+ *         -ECANCELED: Too many requests for now.
  */
 int unit_start(Unit *u) {
         UnitActiveState state;