-.TH SLAPD.CONF 5 "22 September 1998" "OpenLDAP LDVERSION"
+.TH SLAPD.CONF 5 "20 January 1999" "OpenLDAP LDVERSION"
.SH NAME
slapd.conf \- configuration file for slapd, the stand-alone LDAP daemon
.SH SYNOPSIS
Read additional configuration information from the given file before
continuing with the next line of the current file.
.TP
+.B pidfile <filename>
+The ( absolute ) name of a file that will hold the
+.B slapd
+server's process ID ( see
+.BR getpid (2)
+) if started without the debugging command line option.
+.TP
+.B argsfile <filename>
+The ( absolute ) name of a file that will hold the
+.B slapd
+server's command line options
+if started without the debugging command line option.
+.TP
.B loglevel <integer>
Specify the level at which debugging statements and operation
statistics should be syslogged (currently logged to the
-.TH SLAPD 8C "22 September 1998" "OpenLDAP LDVERSION"
+.TH SLAPD 8C "20 January 1999" "OpenLDAP LDVERSION"
.SH NAME
slapd \- Stand-alone LDAP Daemon
.SH SYNOPSIS
Upon startup,
.B slapd
normally forks and disassociates itself from the invoking tty.
-In this case, the
+If configured in
+.BR ETCDIR/slapd.conf ,
+the
.B slapd
-process will print its process ID to a
-.B .pid
-file ( see
+process will print its process ID ( see
.BR getpid (2)
-), as well as the command line options during invocation to an
+) to a
+.B .pid
+file, as well as the command line options during invocation to an
.B .args
-file. By default, these files are located in the directory
-.B LOCALSTATEDIR.
-The files' base names are derived from the
-.B slapd
-binary name, making it possible to run several
-.B slapd
-servers with differet names on the same machine, with each having
-its own
-.B .pid/.args
-files. (Those
-.B slapd
-names might be obtained via symbolic links to one binary file.)
+file ( see
+.BR slapd.conf (5)
+).
If the
.B \-d
flag is given and debugging is set to some non-zero
#define SLAPD_DEFAULT_SIZELIMIT 500
/* default timelimit to spend on a search */
#define SLAPD_DEFAULT_TIMELIMIT 3600
- /* extension of the slapd pid file */
-#define SLAPD_PIDEXT ".pid"
- /* extension of the slapd args file */
-#define SLAPD_ARGSEXT ".args"
/* minimum max ids that a single index entry can map to in ldbm */
#define SLAPD_LDBM_MIN_MAXIDS 4000
int global_lastmod;
char *ldap_srvtab = "";
+char *slapd_pid_file = NULL;
+char *slapd_args_file = NULL;
+
static char *fp_getline(FILE *fp, int *lineno);
static void fp_getline_init(int *lineno);
static void fp_parse_line(char *line, int *argcp, char **argv);
/* assign a default depth limit for alias deref */
be->be_maxDerefDepth = SLAPD_DEFAULT_MAXDEREFDEPTH;
+ /* get pid file name */
+ } else if ( strcasecmp( cargv[0], "pidfile" ) == 0 ) {
+ if ( cargc < 2 ) {
+ Debug( LDAP_DEBUG_ANY,
+ "%s: line %d: missing file name in \"pidfile <file>\" line\n",
+ fname, lineno, 0 );
+ exit( 1 );
+ }
+
+ slapd_pid_file = ch_strdup( cargv[1] );
+
+ /* get args file name */
+ } else if ( strcasecmp( cargv[0], "argsfile" ) == 0 ) {
+ if ( cargc < 2 ) {
+ Debug( LDAP_DEBUG_ANY,
+ "%s: line %d: missing file name in \"argsfile <file>\" line\n",
+ fname, lineno, 0 );
+ exit( 1 );
+ }
+
+ slapd_args_file = ch_strdup( cargv[1] );
+
/* set size limit */
} else if ( strcasecmp( cargv[0], "sizelimit" ) == 0 ) {
if ( cargc < 2 ) {
static void set_shutdown(int sig);
static void do_nothing (int sig);
-/* we need the server's name for constructing the pid/args file names */
-#if defined( SLAPD_PIDEXT ) || defined( SLAPD_ARGSEXT )
-extern char *serverName;
-#define DEFAULT_SERVERNAME "slapd"
-#endif
+/* a link to the slapd.conf configuration parameters */
+extern char *slapd_pid_file;
+extern char *slapd_args_file;
void *
slapd_daemon(
FILE *fp;
int on = 1;
-#ifdef SLAPD_PIDEXT
- char pidFile[BUFSIZ];
-#endif
-#ifdef SLAPD_ARGSEXT
- char argsFile[BUFSIZ];
-#endif
-
#ifdef HAVE_SYSCONF
dtblsize = sysconf( _SC_OPEN_MAX );
#elif HAVE_GETDTABLESIZE
Debug( LDAP_DEBUG_ANY, "slapd starting\n", 0, 0, 0 );
-#if defined( SLAPD_PIDEXT ) || defined( SLAPD_ARGSEXT )
- if ( !serverName ) serverName = DEFAULT_SERVERNAME;
-
-#ifdef SLAPD_PIDEXT
- sprintf( pidFile, "%s%s%s%s", DEFAULT_RUNDIR, DEFAULT_DIRSEP,
- serverName, SLAPD_PIDEXT );
- if ( (fp = fopen( pidFile, "w" )) != NULL ) {
+ if (( slapd_pid_file != NULL ) &&
+ (( fp = fopen( slapd_pid_file, "w" )) != NULL )) {
fprintf( fp, "%d\n", (int) getpid() );
fclose( fp );
}
-#endif
-#ifdef SLAPD_ARGSEXT
- sprintf( argsFile, "%s%s%s%s", DEFAULT_RUNDIR, DEFAULT_DIRSEP,
- serverName, SLAPD_ARGSEXT );
- if ( (fp = fopen( argsFile, "w" )) != NULL ) {
+
+ if (( slapd_args_file != NULL ) &&
+ (( fp = fopen( slapd_args_file, "w" )) != NULL )) {
for ( i = 0; i < g_argc; i++ ) {
fprintf( fp, "%s ", g_argv[i] );
}
fprintf( fp, "\n" );
fclose( fp );
}
-#endif
-#endif
-
while ( !slapd_shutdown ) {
struct sockaddr_in from;
#endif /* LOG_LOCAL4 */
-/*
- * the server's name must be accessible from the daemon module,
- * to construct the pid/args file names
- */
-char *serverName = NULL;
-
static void
usage( char *name )
int syslogUser = DEFAULT_SYSLOG_USER;
#endif
char *configfile;
+ char *serverName;
configfile = SLAPD_DEFAULT_CONFIGFILE;
port = LDAP_PORT;
include ./data/slapd.at.conf
include ./data/slapd.oc.conf
schemacheck off
+pidfile ./var/slapd-acl.pid
+argsfile ./var/slapd-acl.args
#######################################################################
# ldbm database definitions
include ./data/slapd.at.conf
include ./data/slapd.oc.conf
schemacheck on
+pidfile ./var/slapd-master.pid
+argsfile ./var/slapd-master.args
#######################################################################
# ldbm database definitions
include ./data/slapd.at.conf
include ./data/slapd.oc.conf
schemacheck off
+pidfile ./var/slapd-repl-master.pid
+argsfile ./var/slapd-repl-master.args
#######################################################################
# ldbm database definitions
include ./data/slapd.at.conf
include ./data/slapd.oc.conf
schemacheck off
+pidfile ./var/slapd-repl-slave.pid
+argsfile ./var/slapd-repl-slave.args
#######################################################################
# ldbm database definitions