- /* Open all the passive sockets before detaching, to avoid race with
- * processes that start up later. */
- listeners = xmalloc(passive.n * sizeof *listeners);
- for (i = 0; i < passive.n; i++) {
- int error;
-
- error = pstream_open(passive.names[i], &listeners[i]);
- if (error) {
- ovs_fatal(error, "failed to listen on \"%s\"", passive.names[i]);
- }
- }
-
- if (get_detach() && is_chdir_enabled()) {
- /* We need to skip chdir("/") in daemonize() and do it later, because
- * we need to open the database and possible set up up Unix domain
- * sockets in the current working directory after we daemonize. We
- * can't open the database before we daemonize because file locks
- * aren't inherited by child processes. */
- do_chdir = true;
- set_no_chdir();
- } else {
- do_chdir = false;
- }