Page MenuHomestyx hydra

No OneTemporary

diff --git a/src/docs/user/configuration/managing_daemons.diviner b/src/docs/user/configuration/managing_daemons.diviner
index 0e56a95995..d4af3162a4 100644
--- a/src/docs/user/configuration/managing_daemons.diviner
+++ b/src/docs/user/configuration/managing_daemons.diviner
@@ -1,131 +1,187 @@
@title Managing Daemons with phd
@group config
Explains Phorge daemons and the daemon control program `phd`.
= Overview =
Phorge uses daemons (background processing scripts) to handle a number of
tasks:
- tracking repositories, discovering new commits, and importing and parsing
commits;
- sending email; and
- collecting garbage, like old logs and caches.
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 Phorge to work, but some
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 `phorge/bin/phd`). To get
a list of commands, run `phd help`:
phorge/ $ ./bin/phd help
NAME
phd - phorge daemon launcher
...
Generally, you will use:
- **phd start** to launch all daemons;
- **phd restart** to restart all daemons;
- **phd status** to get a list of running daemons; and
- **phd stop** to stop all daemons.
If you want finer-grained control, you can use:
- **phd launch** to launch individual daemons; and
- **phd debug** to debug problems with daemons.
NOTE: When you upgrade Phorge or change configuration, you should restart
the daemons by running `phd restart`.
+Automatically start phd
+=======================
+
+NOTE: If you are opinionated against systemd, cover the eyes of your children
+right now!1!
+
+Computers are good in automatically starting stuff, thanks to the invention
+of the "init system".
+
+Phorge virtually supports any init system. Which one is yours? Don't worry.
+If you don't know, it's systemd.
+
+We propose a minimal systemd configuration file, following some assumptions:
+
+- your lovely Phorge is installed `/somewhere`
+- you have a database service called `mariadb`
+- you have a dedicated Unix user called `daemon-user` - coming from
+ @{article:Diffusion User Guide}
+
+With the above assumptions, create this configuration file as super-user:
+
+```lang=ini,name=/etc/systemd/system/phorge-phd.service
+[Unit]
+Description=Phorge Daemons
+Documentation=https://we.phorge.it/book/phorge/article/managing_daemons/
+After=syslog.target network.target mariadb.service
+
+[Service]
+Type=forking
+User=daemon-user
+Group=daemon-user
+ExecStart=/somewhere/phorge/bin/phd start
+ExecStop=/somewhere/phorge/bin/phd stop
+
+[Install]
+WantedBy=multi-user.target
+```
+
+To install this new systemd configuration, execute these commands as
+super-user:
+
+```
+systemctl daemon-reload
+systemctl enable --now phorge-phd
+```
+
+Now the process has started and will survive after any reboot.
+
+To check if everything is OK:
+
+```
+systemctl status phorge-phd
+```
+
+Anything else can be explored in depth by reading the systemd documentation.
+
= 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 "More Stuff".
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 start**. 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**:
- **test daemons** are not generally useful unless you are
developing daemon infrastructure or debugging a daemon problem;
- **PhabricatorTaskmasterDaemon** performs work from a task queue;
- **PhabricatorRepositoryPullLocalDaemon** daemons track repositories, for
more information see @{article:Diffusion User Guide}; and
- **PhabricatorTriggerDaemon** schedules event triggers and cleans up old
logs and caches.
= Debugging and Tuning =
In most cases, **phd start** handles launching all the daemons you need.
However, you may want to use more granular daemon controls to debug daemons,
launch custom daemons, or launch special daemons like the IRC bot.
To debug a daemon, use `phd debug`:
phorge/bin/ $ ./phd debug <daemon>
You can pass arguments like this (normal arguments are passed to the daemon
control mechanism, not to the daemon itself):
phorge/bin/ $ ./phd debug <daemon> -- --flavor apple
In debug mode, daemons do not daemonize, and they print additional debugging
output to the console. This should make it easier to debug problems. You can
terminate the daemon with `^C`.
To launch a nonstandard daemon, use `phd launch`:
phorge/bin/ $ ./phd launch <daemon>
This daemon will daemonize and run normally.
== General Tips ==
- You can set the maximum number of taskmasters that will run at once
by adjusting `phd.taskmasters`. If you have a task backlog, try increasing
it.
- When you `phd launch` or `phd debug` a daemon, you can type any unique
substring of its name, so `phd launch pull` will work correctly.
- `phd stop` and `phd restart` stop **all** of the daemons on the machine, not
just those started with `phd start`. If you're writing a restart script,
have it launch any custom daemons explicitly after `phd restart`.
- You can write your own daemons and manage them with `phd` by extending
@{class:PhabricatorDaemon}. See @{article@contrib:Adding New Classes}.
- See @{article:Diffusion User Guide} for details about tuning the repository
daemon.
Multiple Hosts
==============
For information about running daemons on multiple hosts, see
@{article:Cluster: Daemons}.
Next Steps
==========
Continue by:
- learning about the repository daemon with @{article:Diffusion User Guide};
or
- writing your own daemons with @{article@contrib:Adding New Classes}.

File Metadata

Mime Type
text/x-diff
Expires
Sun, Nov 24, 5:28 PM (1 d, 13 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1050
Default Alt Text
(6 KB)

Event Timeline