2
0
mirror of https://github.com/openvswitch/ovs synced 2025-10-19 14:37:21 +00:00

daemon: Provide option to not chdir to root

By default, Open vSwitch daemons change their working directories to the
root directory.  This commit provides a --no-chdir option to prevent this
behavior.
This commit is contained in:
Justin Pettit
2009-08-04 22:41:46 -07:00
parent c4fca56af2
commit 91a1e24d09
3 changed files with 45 additions and 4 deletions

View File

@@ -37,6 +37,9 @@ static char *pidfile;
/* Create pidfile even if one already exists and is locked? */
static bool force;
/* Should we chdir to "/". */
static bool chdir_ = true;
/* Returns the file name that would be used for a pidfile if 'name' were
* provided to set_pidfile(). The caller must free the returned string. */
char *
@@ -69,6 +72,13 @@ get_pidfile(void)
return pidfile;
}
/* Sets that we do not chdir to "/". */
void
set_no_chdir(void)
{
chdir_ = false;
}
/* Normally, die_if_already_running() will terminate the program with a message
* if a locked pidfile already exists. If this function is called,
* die_if_already_running() will merely log a warning. */
@@ -209,7 +219,9 @@ daemonize(void)
write(fds[1], &c, 1);
close(fds[1]);
setsid();
chdir("/");
if (chdir_) {
chdir("/");
}
break;
case -1:
@@ -228,6 +240,7 @@ daemon_usage(void)
printf(
"\nDaemon options:\n"
" -D, --detach run in background as daemon\n"
" --no-chdir do not chdir to '/'\n"
" -P, --pidfile[=FILE] create pidfile (default: %s/%s.pid)\n"
" -f, --force with -P, start even if already running\n",
ovs_rundir, program_name);