supervise(8)

πŸ“¦
version 0.76 Β· 2 versions
  • 0.76 Β· debian bookworm, debian trixie, nixpkgs unstable, ubuntu jammy, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking (latest)
  • 1.11 Β· alpine 3.24
, in debian bookworm, debian trixie, nixpkgs unstable, ubuntu jammy, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ’– supervise(8) β€” or, the girl who never lets your service die πŸ’–

okay bestie, quick vibe check: this is a page from the System Manager's Manual, section 8, and it's all about the tiny little babysitter process named supervise. she's lowkey the most devoted bestie in the whole daemontools friend group. she will literally never leave your service alone. ever. ✨


🌸 NAME 🌸

supervise</pruple> β€” starts and monitors a service. that's it. that's her whole job. and she ATE. πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

supervise s

just hand her a directory and she's off, no cap. πŸŽ€


✨ DESCRIPTION ✨

so here's the tea πŸ“: supervise switches into the directory named s and starts up ./run. and if ./run exits? she does not panic. she does not cry. she just restarts ./run. iconic behavior honestly. πŸ”₯

and the way she's thoughtful about it too β€” she pauses for a second after starting ./run, so that she does not loop too quickly if ./run exits immediately. like she's giving it a lil breather instead of absolutely spamming it. main character restraint. πŸ‘‘


πŸ™ˆ the down file situation

if the file s/down exists, supervise does not start ./run immediately. she's waiting. she's patient. she's giving mysterious. 🧚

and that's where svc(8) comes in β€” you can use svc(8) to start ./run and to give other commands to supervise. so yeah, you're the one who says go. πŸ’œ


πŸ’€ the s/supervise status directory

supervise maintains status information in a binary format inside the directory s/supervise, which must be writable to supervise. yes bestie, writable. she needs to write. do not lock her out of her own journal. 😭

good news tho: that status information can be read by svstat(8). so you're never out of the loop. 🫢


⚠️ the dramatic part (read this fr fr)

supervise may exit immediately after startup if it cannot find the files it needs in s or if another copy of supervise is already running in s. so like... if the vibes are wrong, she's gone. no goodbye text. πŸ’€

but listen β€” once supervise is successfully running, it will not exit unless it is killed or specifically asked to exit. that's loyalty. that's commitment. that's wife behavior. periodt. πŸ’–

you can use svok(8) to check whether supervise is successfully running. vibe check, basically. βœ…

and you can use svscan(8) to reliably start a collection of supervise processes. like... a whole squad of them. a friend group. a supervise girl gang. πŸŒˆπŸ‘‘


πŸŽ€ SEE ALSO πŸŽ€

and of course, the mothership herself:

http://cr.yp.to/daemontools.html

okay that's the whole page bestie, tysm for reading, go start a service and let her cook 🫢✨

this was supervise(8) from the System Manager's Manual β€” she's been on the scene since forever and she's still the blueprint πŸ’…πŸŒΈ

πŸ“¦ where this page comes from