{namespace buck.buckd}

/***/
{template .soyweb}
  {call buck.page}
    {param title: 'buckd' /}
    {param content}

Starts a buck daemon process

<pre>buckd</pre>

<p>
This command starts a Buck daemon process for the current project in
the current working directory. When running other commands, Buck first
checks for a running daemon process and if found uses that daemon to
execute the command. Using a Buck daemon can save significant
amounts of time as it avoids the overhead of starting a Java virtual
machine, loading the buck class files and parsing the build files for
each command.
</p>
<p>
The buck daemon writes its port, process id and log output to a <code>.buckd</code>{sp}
directory it creates inside the project root directory. Subsequent
buck commands use these files to find the daemon process and the buckd command
uses them to kill any existing daemon process for the project when it is run.
</p>
<p>
It is safe to run several buck daemons started from different project
directories and they will not interfere with each other, making buckd
suitable for use in shared server environments or where several
projects are being worked on concurrently.
</p>
<p>
Buck daemon processes monitor the project file system while running and
invalidate cached build rules if any non source files are changed. Subtrees
within the project file system that are specified via the "ignore" setting of the
"project" section of .buckconfig are excluded from monitoring. Adding
project-specific output directories and source control directories like .git
can significantly improve performance and may be nescessary to avoid file
change overflows when buck daemons are being used to build very large projects.
</p>

    {/param}  // content
  {/call} // buck.page
{/template}
