DICOD(8)

πŸ“¦
version 2.12 Β· 5 versions
, in debian trixie, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸŽ€ dicod(8) β€” GNU dictionary server πŸŽ€

okay bestie, listen up β€” this is the manual page for dicod, from the GNU Dico Reference, and it's giving "the server that serves you dictionary definitions over the network." Let's get into it πŸ’…


✨ NAME ✨

dicod β€” GNU dictionary server. That's it, that's the name, and honestly? Iconic. πŸ‘‘


🌸 SYNOPSIS 🌸

dicod [-ETVfist] [-D SYMBOL[=VALUE]] [-I DIR] [-L DIR] [-x LEVEL-SPEC]
[--config=FILE] [--config-help] [--debug=LEVEL-SPEC]
[--define=SYMBOL[=VALUE]] [--foreground] [--include-dir=DIR] [--inetd]
[--lib-dir=DIR] [--lint] [--no-preprocessor] [--no-transcript]
[--preprocessor=PROG] [--single-process] [--source-info] [--stderr]
[--syslog] [--trace-grammar] [--trace-lex] [--transcript]
dicod [OPTIONS] -r|--runtest MODULE [ARG...] [-- ARG...]
dicod -h
dicod --help
dicod --usage
dicod --version

πŸ’Œ NOTE πŸ’Œ

real talk for a sec: this manpage is just the short version of GNU dicod, bestie. The full ✨lore✨ β€” examples, usage recommendations, the whole main-character backstory β€” lives in the GNU Dico Manual, which comes in texinfo format. If the info reader and the GNU Dico docs are properly installed on your system, this command

info dico

should give you the complete manual. 🫢

You can also read it in emacs(1)'s info mode, or find it in various formats online at

http://www.gnu.org.ua/software/dico/manual
⚠️ And if anything in this manpage ever disagrees with the GNU Dico Manual? The Manual wins. It's the authoritative source, no cap. This one's just the little sister. 😭

πŸ¦‹ DESCRIPTION πŸ¦‹

Dicod is a dictionary server daemon. It implements the DICT protocol defined in RFC 2229. Periodt. πŸ’…

Dicod is a part of GNU Dico, a package that provides β€” apart from the server itself β€” a set of loadable modules and a command line client program dico(1). The whole squad. 🌈

Upon startup, the server reads its configuration file /etc/dicod.conf, loads and initializes the dictionary modules defined there, and starts serving requests. Lowkey the most organized thing ever.

When started in daemon mode (which is the default), dicod listens for incoming connections on sockets requested in its configuration. When an incoming connection arrives, the server spawns a copy of itself dedicated for serving that particular connection. Unless configured otherwise, in this mode dicod detaches itself from the controlling terminal and operates in background. Main character energy: it doesn't need the terminal's attention.

In inetd mode the server listens on DICT requests on its standard input stream and sends replies to its standard output stream. As the name indicates, this mode is intended for use with inetd(8) or a similar daemon. 🧚


πŸ’– OPTIONS πŸ’–

🌟 Program Mode 🌟

  • -E β€” Preprocess configuration file and exit. Peep the PREPROCESSOR section below for the tea. β˜•
  • -i, --inetd β€” Run in inetd mode.
  • -t, --lint β€” Check configuration file syntax and exit.
  • -r, --runtest β€” Run unit tests for module. The arguments that follow this option are collected into two arrays: arguments up to the -- marker (or end of line, if it is not present) form the vector that is passed to the module's dico_run_test function. If the -- marker is present, arguments that follow it are collected into a separate argument vector starting from slot 1, its 0th element is set to point to the module name and the resulting vector is passed to the dico_init function of the module. When running unit tests, configuration file is ignored. The diagnostic messages are printed to the standard error output.

πŸ’« Modifiers πŸ’«

  • --config=FILE β€” Read configuration from FILE, instead of /etc/dicod.conf.
  • -f, --foreground β€” Operate in foreground.
  • -s, --single-process β€” In daemon mode, process connections in the main process, without starting subprocesses for each connection. This means that the daemon is able to serve only one client at a time. This option is intended for debugging purposes only.
🚨 Never use it in production environment. Bestie I am BEGGING you. It's debug-only, fr fr. πŸ’€
  • --stderr β€” Output diagnostic to stderr. Useful only together with --foreground.
  • --syslog β€” After successful startup, output any diagnostic to syslog. This is the default. 🌸

πŸ”₯ Debugging πŸ”₯

  • -T, --transcript β€” Enable session transcripts. This instructs dicod to log all commands it receives and all responses it sends during the session. Transcript is logged via the default logging channel. If syslog is enabled, the debug priority is used.
  • --no-transcript β€” Disable session transcript.
  • --source-info β€” Include source line information in the debugging output.
  • --trace-grammar β€” Trace configuration file parser.
  • --trace-lex β€” Trace configuration file lexer.
  • -x, --debug=NUMBER β€” Set debug verbosity level. The argument is an integer ranging from 0 (no debugging, default) to 100 (maximum debugging information). Go big or go home, honestly.

πŸŽ€ Preprocessor Control πŸŽ€

  • -D, --define=SYMBOL[=VALUE] β€” Define preprocessor symbol SYMBOL. Optional VALUE supplies the new symbol value. This option is passed to the preprocessor verbatim.
  • -I, --include-dir=DIR β€” Add the directory DIR to the list of directories to be searched for preprocessor include files.
  • --no-preprocessor β€” Do not use external preprocessor.
  • --preprocessor=PROG β€” Use PROG as a preprocessor for configuration file.

⭐ Additional information options ⭐

  • --config-help β€” Show a summary of configuration file syntax and available statements.
  • -V, --version β€” Print program version.
  • -h, --help β€” Print a short summary of command line options.
  • --usage β€” Display a short usage message.

🧚 PREPROCESSOR 🧚

Prior to parsing, dicod configuration file is preprocessed using m4(1). It is invoked with -s flag, instructing it to include line synchronization information in its output. This information is then used by the parser to display meaningful diagnostic. So fancy, honestly. ✨

The include path is set initially to the following two directories:

/usr/share/dico/2.12/include
/usr/share/dico/include

It can be further modified using the -I (--include-directory) command line option.

If the file pp-setup is found in the include path, it is sourced before the configuration file. This can be used to provide macros and constants for the configuration.

The default pp-setup file changes the quote characters to [ and ], and renames all m4 built-in macros so they start with the prefix m4_. The latter has the effect similar to that of GNU m4 --prefix-builtin option, but has an advantage that it works with other m4 implementations as well. πŸ¦‹

Additional definitions can also be provided from the command line using the -D (--define) option.

To view preprocessed configuration, use the -E option. It prints the preprocessed text on the standard output.

To disable preprocessing, use the --no-preprocessor option.


πŸ’œ SEE ALSO πŸ’œ

Complete GNU Dico manual: run info dico or use emacs(1) info mode to read it.

Online copies of GNU Dico documentation in various formats can be found at:

http://www.gnu.org.ua/software/dico/manual

πŸ‘‘ AUTHORS πŸ‘‘

Sergey Poznyakoff


πŸ› BUG REPORTS πŸ›

Report bugs to <bug-dico@gnu.org.ua>.


Copyright Β© 2008-2018 Sergey Poznyakoff
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
🫢 Free software besties, we love to see it. But no warranty, okay? To the extent permitted by law. Periodt.

k bye bestie, go serve some definitions πŸ’–

This page came to you from the GNU DICO fam, version stamped September 25, 2018, and it lives in section DICOD(8). Stan. πŸŽ€βœ¨

πŸ“¦ where this page comes from