+
+ /* If inittab is already starting slapd, disable the old entry. */
+ locate_init_entry(slapd_init_entry, getenv("SLAPD_BINARY"));
+ if (strlen(slapd_init_entry) > 0) {
+ set_init_entry(slapd_init_entry, "off");
+ }
+
+ /* Generate a unique entry name for slapd */
+ generate_entry_name(slapd_init_entry);
+
+ /* Now write it out to /etc/inittab */
+ /* FIXME make it run as some non-root user */
+ fp = fopen("/etc/inittab", "a");
+ if (fp == NULL) {
+ display_error(strerror(errno));
+ } else {
+ fprintf(fp, "# Start the OpenLDAP server for Citadel...\n");
+ fprintf(fp, "%s:2345:respawn:%s -d 1 -f %s\n",
+ slapd_init_entry,
+ getenv("SLAPD_BINARY"),
+ getenv("LDAP_CONFIG")
+ );
+ fclose(fp);
+ }
+