{namespace buck.buckd}

/***/
{template .soyweb}
  {call buck.page}
    {param title: 'buckd' /}
    {param description}
      A command that starts a buck daemon process that the client will talk to.
    {/param}
    {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 necessary to avoid file
change overflows when buck daemons are being used to build very large projects.
</p>
<p>
To disable the daemon from starting, set the environment variable
{sp}<code>NO_BUCKD</code> to <code>1</code>.
</p>

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