title: What are the behavioral differences between a daemon and a normal process?
body: <p>I know that daemons run in the background mostly i.e. they require very less interaction from the user.</p>
  
  <p><a href="http://en.wikipedia.org/wiki/Daemon_(computer_software)#Types_of_daemons" rel="noreferrer">Wikipedia lists</a> some of the types of daemons that commonly exist:</p>
  
  <ul>
  <li>Dissociating from the controlling tty</li>
  <li>Becoming a session leader</li>
  <li>Becoming a process group leader</li>
  <li>Staying in the background by forking and exiting (once or twice). This is required sometimes for the process to become a session leader. It also allows the parent process to continue its normal execution. This idiom is sometimes summarized with the phrase "fork off and die"</li>
  <li>Setting the root directory ("/") as the current working directory so that the process will not keep any directory in use that may be on a mounted file system (allowing it to be unmounted).</li>
  <li>Changing the umask to 0 to allow open(), creat(), et al. calls to provide their own permission masks and not to depend on the umask of the caller</li>
  <li>Closing all inherited open files at the time of execution that are left open by the parent process, including file descriptors 0, 1 and 2 (stdin, stdout, stderr). Required files will be opened later.</li>
  <li>Using a logfile, the console, or /dev/null as stdin, stdout, and stderr</li>
  </ul>
  
  <hr>
  
  <blockquote>
    <p>I want to know if there can be any differences in behavior in a daemon as differentiated from a normal process, apart from the one I mentioned in the first line. Both kinds of processes do their work, and interact with the user depending on the amount of interaction they need to do their job.</p>
  </blockquote>
  
  <p>Is there more to daemons than this?</p>