If the write to the pipe fails here then the parent will think that the
child failed to start up, so the child should oblige it by bailing out.
#include "fatal-signal.h"
#include "dirs.h"
#include "lockfile.h"
+#include "socket-util.h"
#include "timeval.h"
#include "util.h"
daemonize_complete(void)
{
if (detach) {
- char c = 0;
+ size_t bytes_written;
+ int error;
+
+ error = write_fully(daemonize_fds[1], "", 1, &bytes_written);
+ if (error) {
+ ovs_fatal(error, "could not write to pipe");
+ }
- ignore(write(daemonize_fds[1], &c, 1));
close(daemonize_fds[1]);
setsid();
if (chdir_) {