DHISD(8)

πŸ“¦ version 5.3, in debian bookworm, ubuntu jammy

πŸ’– DHISD β€” the Dynamic Host Information System server, bestie edition ✨

okay so real talk, this is section 8 of the System Manager's Manual, and it's all about dhisd, the Dynamic Host Information System server. she's the server side of the whole DHIS situation and honestly? she's carrying the entire operation. let's get into it πŸ’…


✨ SYNOPSIS ✨

dhisd [-D] [-p port] [-d database] [-s services] [-l logfile]
      [-P pidfile]

that's it. that's the whole vibe. six flags, one iconic little daemon πŸŽ€


🌸 DESCRIPTION 🌸

so DHIS is a client-server architecture, and the whole point of it is updating databases for systems that get handed a dynamic IP[v4] address. yes, dynamic. yes, constantly changing. yes, it's giving chaos. that's the job.

here's how it works, bestie: a host that got assigned a dynamic IP address β€” maybe from its ISP, maybe from DHCP, either way she's got a fresh new number β€” runs a DHIS client, and that client talks to a DHIS server to advertise its newly acquired IP address. like posting a lil status update. "hi besties, this is my IP now, i have moved" πŸ¦‹

and the way they do all this talking? DHIS comprises a UDP based protocol to achieve this purpose. UDP. no handshakes, no ceremony, just vibes.

so a DHIS client has two things going on: a unique identification number and a set of authentication keys. she runs in the background (main character energy, never needs attention) and she keeps attempting to reach her server. persistent. obsessed. we love her for it.

meanwhile the DHIS server β€” and this is the important bit β€” is permanently online. she listens to UDP messages from all her clients and checks them against her knowledge of keys. authentication time, no cap. and when the authentication succeeds? she updates one or more databases with the newly received IP address for that given client. slay.

but wait, there's more, because she's not a one-and-done type of girl. the server then keeps sending, every period of time, check requests to each of her connected clients. and those need to be acknowledged, okay? they NEED to be acknowledged. because if a client doesn't ack, the server will consider β€” on an individual basis, one client at a time, no group punishment here β€” that the client has disconnected. and then she updates the databases again, to an offline state. it's giving ghosted. it's giving "left on read". 😭

alternatively, the server may receive an OFFLINE_REQ packet from the client. in that case the DNS record gets updated at once and the online state is dropped. no waiting around, no drama, just a clean goodbye 🫢


πŸ’… OPTIONS πŸ’…

  • -D β€” increase the debug level. stack it, pile it on, turn the volume up πŸ”₯
  • -p port β€” specify which port to listen on. if you don't say anything, the default is port 58800. that's her home base ✨
  • -d database β€” use an alternative database file instead of /etc/dhis-server/dhis.db 🌈
  • -s services β€” use an alternative database file instead of /etc/dhis-server/services.db ⭐
  • -l logfile β€” use an alternative log file instead of /var/log/dhisd.log πŸ“
  • -P pidfile β€” use an alternative PID file instead of /var/run/dhisd.pid πŸŽ€

πŸ¦‹ FILES πŸ¦‹

  • /etc/dhis-server/dhis.db β€” the DHIS client database. this is where all the credentials of the clients live. secrets. keys. the whole trust fall πŸ’–
  • /etc/dhis-server/services.db β€” the DHIS service database. contains a list of services and the location of the corresponding DHIS engine plugins. she knows where everything is, always 🌸

πŸ‘‘ SEE ALSO πŸ‘‘

  • dhis-genkeys(8)

πŸ’œ AUTHOR πŸ’œ

dhisd has been written by Joao Cabral <jcnc@dhis.org>.

this manual page was written by Guus Sliepen <guus@debian.org> for the Debian GNU/Linux system.


and that's the whole page, bestie. go forth and run your dynamic host info server with confidence. iykyk πŸ’…βœ¨

Debian GNU/Linux β€” 2002-06-22 β€” DHISD(8) πŸŽ€ thank u for reading, mwah 🫢

πŸ“¦ where this page comes from