mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-14 01:26:13 +01:00
4ef918e213
Summary: Phabricator generates a bunch of data that we don't need to keep around forever, add a GC daemon to get rid of it with some basic configuration options. This needs a couple more diffs to get some of the details but I think this is a reasonable start. I also fixed a couple of UI things related to this, e.g. the daemon logs page going crazy when a daemon gets stuck in a loop and dumps tons of data to stdout. Test Plan: - Ran gc daemon in 'phd debug' mode and saw it delete stuff, then sleep once it had cleaned everything up. - Mucked around with TTLs and verified they work correctly. - Viewed gc'd transcripts in the web interface and made sure they displayed okay. - Viewed daemon logs before/after garbage collection. - Running some run-at / run-for tests now, I'll update if the daemon doesn't shut off in ~10-15 minutes. :P Reviewed By: tuomaspelkonen Reviewers: jungejason, tuomaspelkonen, aran CC: aran, tuomaspelkonen, epriestley Differential Revision: 583
73 lines
2.7 KiB
Text
73 lines
2.7 KiB
Text
@title Managing Daemons with phd
|
|
@group config
|
|
|
|
Explains Phabricator daemons and the daemon control program ##phd##.
|
|
|
|
= Overview =
|
|
|
|
Phabricator uses daemons (background processing scripts) to handle a number of
|
|
tasks, like:
|
|
|
|
- tracking repositories and discovering new commits;
|
|
- sending mail;
|
|
- updating objects in the search index; and
|
|
- custom tasks you define.
|
|
|
|
Daemons are started and stopped with **phd** (the **Ph**abricator **D**aemon
|
|
launcher). Daemons can be monitored via a web console.
|
|
|
|
You do not need to run daemons for most parts of Phabricator to work, but a few
|
|
features (principally, repository tracking with Diffusion) require them and
|
|
several features will benefit in performance or stability if you configure
|
|
daemons.
|
|
|
|
= phd =
|
|
|
|
**phd** is a command-line script (located at ##phabricator/bin/phd##). To get
|
|
a list of commands, run ##phd help##:
|
|
|
|
phabricator/ $ ./bin/phd help
|
|
NAME
|
|
phd - phabricator daemon launcher
|
|
...
|
|
|
|
Generally, you will use:
|
|
|
|
- **phd launch** to launch daemons;
|
|
- **phd debug** to debug problems with daemons;
|
|
- **phd status** to get a list of running daemons; and
|
|
- **phd stop** to stop all daemons.
|
|
|
|
NOTE: When you upgrade Phabricator or change configuration, you should restart
|
|
the daemons by stopping and relaunching them.
|
|
|
|
NOTE: When you **launch** a daemon, you can type any unique substring of its
|
|
name, so **phd launch metamta** will work correctly.
|
|
|
|
= Daemon Console =
|
|
|
|
You can view status and debugging information for daemons in the Daemon Console
|
|
via the web interface. Go to ##/daemon/## in your install or click
|
|
**Daemon Console** from the homepage.
|
|
|
|
The Daemon Console shows a list of all the daemons that have ever launched, and
|
|
allows you to view log information for them. If you have issues with daemons,
|
|
you may be able to find error information that will help you resolve the problem
|
|
in the console.
|
|
|
|
NOTE: The easiest way to figure out what's wrong with a daemon is usually to use
|
|
**phd debug** to launch it instead of **phd launch**. This will run it without
|
|
daemonizing it, so you can see output in your console.
|
|
|
|
= Available Daemons =
|
|
|
|
You can get a list of launchable daemons with **phd list**:
|
|
|
|
- **libphutil test daemons** are not generally useful unless you are
|
|
developing daemon infrastructure or debugging a daemon problem;
|
|
- **PhabricatorMetaMTADaemon** sends mail in the background, see
|
|
@{article:Configuring Outbound Email} for details;
|
|
- **PhabricatorTaskmasterDaemon** runs a generic task queue; and
|
|
- **PhabricatorRepository** daemons track repositories, descriptions are
|
|
available in the @{article:Diffusion User Guide}.
|
|
- **PhabricatorGarbageCollectorDaemon** cleans up old logs and caches.
|