ipsvd(7)

πŸ’– ipsvd β€” Internet protocol service daemon πŸ’–

okay bestie, so this is ipsvd, the internet protocol service daemon. this one's a concept, a vibe, the blueprint β€” the actual daemons are its children (we'll get there). it's from the Miscellaneous Information Manual, section 7, and it's giving "protocol mom" energy fr fr.


✨ SYNOPSIS ✨

ipsvd [-hp] [-l name] [-u user] [-i dir|-x cdb] [-t sec] host port prog

look at her. gorgeous. one line, does everything. 🫢


🌸 DESCRIPTION 🌸

so here's the tea β˜• β€” an implementation of an internet protocol service daemon has to give you the command line interface exactly like the SYNOPSIS above (extra options are allowed, no gatekeeping), and it supports pre-defined instructions for handling connections. where do those instructions live? in files in an instructions directory, or in a constant database β€” both described in ipsvd-instruct(5). iykyk.

and rn, there are exactly two implementations of an internet protocol service daemon, bestie:

  • a TCP/IP service daemon: tcpsvd(8) πŸ¦‹
  • an UDP/IP service daemon: udpsvd(8) πŸ’…

more internet protocol service daemons may show up in the future. the family's still growing, we love to see it. ✨


πŸ‘‘ OPTIONS πŸ‘‘

one bullet per option, no skips, we eat the whole menu. πŸ“

  • -i dir β€” read instructions for handling new connections from the instructions directory dir. details live in ipsvd-instruct(5), go read her.
  • -x cdb β€” read instructions for handling new connections from the constant database cdb. the constant database is normally created from an instructions directory by running ipsvd-cdb(8). iconic pipeline, honestly.
  • -t sec β€” timeout. ⏰ this option only takes effect if the -i option is given. while checking the instructions directory, it checks the time of last access of the file that matches the client's address or hostname (if any), and discards and removes that file if it wasn't accessed within the last sec seconds. but β€” and this is the important part β€” ipsvd does not discard or remove a file if the user's write permission is not set; for those files the timeout is disabled. default is 0, which means the timeout is disabled. so by default: no deleting, no drama. πŸ’…
  • -l name β€” local hostname. do not look up the local hostname in DNS, just use name as the hostname. lowkey efficient, we stan.
  • -u [:]user[:group] β€” drop permissions. 🫑 set uid and gid to the user's uid and gid, as found in /etc/passwd, before running prog. if user is followed by a colon and a group, set the gid to group's gid, as found in /etc/group, instead of the user's gid. if group is a colon-separated list of group names, set the group ids of all the listed groups. if user is prefixed with a colon, then the user and all group arguments are interpreted as uid and gids respectively β€” not looked up in the password or group file at all. and all supplementary groups are removed. clean slate, main character energy. ✨
  • -h β€” look up the client's hostname in DNS. πŸ”
  • -p β€” paranoid mode, and honestly? valid. after looking up the client's hostname in DNS, it looks up the IP addresses in DNS for that hostname, and forgets about the hostname entirely if none of the addresses match the client's IP address. you should set this option if you use hostname based instructions. also, -p implies -h, so you get the lookup for free. πŸ’–
not me being dramatic but fr: if you're doing hostname-based instructions, turn on -p. paranoia is self-care. 🧚

πŸŽ€ SIGNALS πŸŽ€

if an ipsvd receives a TERM signal, it exits with 0. polite! respectful! she leaves when asked. 🫢


🌈 SEE ALSO 🌈

and the website, bestie: http://smarden.org/ipsvd/ β€” go click around, slay. πŸ’»βœ¨


πŸ’œ AUTHOR πŸ’œ

Gerrit Pape <pape@smarden.org> β€” thank you for your service, king. πŸ‘‘


and that's the whole page, no cap. this was ipsvd(7), from the Miscellaneous Information Manual β€” go read her sisters next, they're all linked above. bye bestie, hydrate, and don't forget your timeouts πŸ’…πŸŒΈπŸ’–