/*
 * daemon.c - "daemonize" a process
 */

#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>

int daemon(int nochdir, int noclose)
{
  int nullfd;
  pid_t f;

  if ( !nochdir ) {
    if ( chdir("/") )
      return -1;
  }

  if ( !noclose ) {
    if ( (nullfd = open("/dev/null", O_RDWR)) < 0 ||
	 dup2(nullfd, 0) < 0 ||
	 dup2(nullfd, 1) < 0 ||
	 dup2(nullfd, 2) < 0 )
      return -1;
    close(nullfd);
  }

  f = fork();
  if ( f < 0 )
    return -1;
  else if ( f > 0 )
    _exit(0);


  return setsid();
}
