anchor.diff:      raise Exception.Create('Impossible to create an independent session');
   end;
   
  -class procedure TPosixDaemon.ForkProcess;
  -begin
  -  FProcessID := fork();
  -  if FProcessID < 0 then
  +class function TPosixDaemon.ForkProcess: pid_t;
  +begin
  +  Result := fork();
  +  if Result < 0 then
       raise Exception.Create('Cannot create the fork');
   end;
   
  
positive.code:     ///   Log Info Raw message
      /// </summary>
      class procedure LogRaw(const AMessage: string); static;
  
      /// <summary>
      ///   Posix Process ID (pid)
  
negative.code:   FSignalProc := ASignalProc;
  
    LogOpen;
  
    FProcessID := ForkProcess;
    KillParent(FProcessID);
  
    DetachTerminal;
  
    FProcessID := ForkProcess;
    KillParent(FProcessID);
  
    CatchHandleSignals;
  
    CloseDescriptors;
    RouteDescriptors;
  
    UserFileMask(027);
    SetRootDirectory('/');
  end;
  
  class procedure TPosixDaemon.Stop;
  begin
    FRunning := False;
  end;
  
  class procedure TPosixDaemon.UserFileMask(AMask: Cardinal);
  begin
    umask(AMask);
  