blob: 56c937f9c3bf0cbed7308782f0df46690b230761 [file] [log] [blame]
{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. Sub-trees
within the project file system can be excluded from this monitoring by adding
them as a comma separated list to the "ignore" setting in the "buckd"
section of .buckconfig. Output directories should always be added to this
setting to avoid cached build rules being invalidated on every run and adding
.buckd, IDE directories like .idea 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}