Blob Blame History Raw
diff --git a/lib/services/systemd.c b/lib/services/systemd.c
index 10c605a..c797c47 100644
--- a/lib/services/systemd.c
+++ b/lib/services/systemd.c
@@ -545,15 +545,27 @@ systemd_unit_exec_with_unit(svc_action_t * op, const char *unit)
 
     } else if (g_strcmp0(method, "start") == 0) {
         FILE *file_strm = NULL;
-        char *override_dir = g_strdup_printf("%s/%s", SYSTEMD_OVERRIDE_ROOT, unit);
-        char *override_file = g_strdup_printf("%s/%s/50-pacemaker.conf", SYSTEMD_OVERRIDE_ROOT, unit);
+        char *override_dir = g_strdup_printf("%s/%s.service.d", SYSTEMD_OVERRIDE_ROOT, op->agent);
+        char *override_file = g_strdup_printf("%s/%s.service.d/50-pacemaker.conf", SYSTEMD_OVERRIDE_ROOT, op->agent);
 
         method = "StartUnit";
         crm_build_path(override_dir, 0755);
 
         file_strm = fopen(override_file, "w");
         if (file_strm != NULL) {
-            int rc = fprintf(file_strm, "[Service]\nRestart=no");
+            /* TODO: Insert the start timeout in too */
+            char *override = g_strdup_printf(
+                "[Unit]\n"
+                "Description=Cluster Controlled %s\n"
+                "Before=pacemaker.service\n"
+                "\n"
+                "[Service]\n"
+                "Restart=no\n",
+                op->agent);
+
+            int rc = fprintf(file_strm, "%s\n", override);
+
+            free(override);
             if (rc < 0) {
                 crm_perror(LOG_ERR, "Cannot write to systemd override file %s", override_file);
             }
@@ -571,7 +583,7 @@ systemd_unit_exec_with_unit(svc_action_t * op, const char *unit)
         free(override_dir);
 
     } else if (g_strcmp0(method, "stop") == 0) {
-        char *override_file = g_strdup_printf("%s/%s/50-pacemaker.conf", SYSTEMD_OVERRIDE_ROOT, unit);
+        char *override_file = g_strdup_printf("%s/%s.service.d/50-pacemaker.conf", SYSTEMD_OVERRIDE_ROOT, op->agent);
 
         method = "StopUnit";
         unlink(override_file);