diff options
author | Eric Wong <e@80x24.org> | 2021-10-01 09:54:45 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2021-10-02 07:59:52 +0000 |
commit | a1d11ab624367884f3cff76c13aba85be3a89e45 (patch) | |
tree | 807afb608e8b8efd85a954d9526f29e9604b5876 /Documentation/lei-daemon.pod | |
parent | 85242cb8082e580012a2e968de417415b89c85be (diff) | |
download | public-inbox-a1d11ab624367884f3cff76c13aba85be3a89e45.tar.gz |
In case users see "lei-daemon" in ps(1) or syslog and wonder. Helped-by: Kyle Meyer <kyle@kyleam.com>
Diffstat (limited to 'Documentation/lei-daemon.pod')
-rw-r--r-- | Documentation/lei-daemon.pod | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/Documentation/lei-daemon.pod b/Documentation/lei-daemon.pod new file mode 100644 index 00000000..92bc9ac5 --- /dev/null +++ b/Documentation/lei-daemon.pod @@ -0,0 +1,61 @@ +=head1 NAME + +lei-daemon - technical information for local email interface daemon + +=head1 DESCRIPTION + +This documentation is a high-level overview for developers and +administrators interested in how lei works. + +lei-daemon is a background daemon which powers the L<lei(1)> +command-line tool. It may support virtual users and read-write +IMAP+JMAP APIs in the future. It is designed to optimize shell +completion by avoiding module loading costs, monitor Maildirs +(and in the near future, IMAP folders) for changes. + +=head2 worker processes + +Most commands cause lei-daemon to L<fork(2)> new worker +processes to isolate and parallelize work. lei-daemon is +significantly more aggressive than read-only +L<public-inbox-daemon(8)> processes with regards to resource use +since it's not designed to support C10K/C100K scenarios. + +=head2 file descriptor passing + +FD passing is used to reduce IPC costs for bulk I/O when +importing large mboxes from stdin and dumping large mboxes +to stdout. + +=head2 SOCK_SEQPACKET + +SOCK_SEQPACKET sockets are used for both communicating with +L<lei(1)> and to internal workers. SOCK_SEQPACKET guarantees +reliability (unlike SOCK_DGRAM), allows easy load distribution, +and saves developers the trouble of maintaining stream parsers. + +=head2 file monitoring + +Inotify or EVFILT_VNODE is used depending on the platform +to monitor Maildirs for changes and track keyword changes. + +The listen socket (default: C<$XDG_RUNTIME_DIR/lei/5.seq.sock>) +is also monitored, and the daemon will automatically shutdown +if it is unlinked. + +=head1 CONTACT + +Feedback welcome via plain-text mail to L<mailto:meta@public-inbox.org> + +The mail archives are hosted at L<https://public-inbox.org/meta/> and +L<http://4uok3hntl7oi7b4uf4rtfwefqeexfzil2w6kgk2jn5z2f764irre7byd.onion/meta/> + +=head1 COPYRIGHT + +Copyright all contributors L<mailto:meta@public-inbox.org> + +License: AGPL-3.0+ L<https://www.gnu.org/licenses/agpl-3.0.txt> + +=head1 SEE ALSO + +L<lei-overview(7)>, L<lei-daemon-kill(1)>, L<lei-daemon-pid(1)> |