supervise(8)
π 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)
supervisemay exit immediately after startup if it cannot find the files it needs insor if another copy ofsuperviseis already running ins. 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 π
svc(8)svok(8)svstat(8)svscanboot(8)svscan(8)readproctitle(8)fghack(8)pgrphack(8)multilog(8)tai64n(8)tai64nlocal(8)setuidgid(8)envuidgid(8)envdir(8)softlimit(8)setlock(8)
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
- debian bookworm: daemontools 1:0.76-8.1 Β· LicenseRef-public-domain
- debian trixie: daemontools 1:0.76-14 Β· LicenseRef-public-domain
- nixpkgs unstable: daemontools 0.76
- ubuntu jammy: daemontools 1:0.76-7
- ubuntu noble: daemontools 1:0.76-10 Β· LicenseRef-public-domain
- ubuntu questing: daemontools 1:0.76-15
- ubuntu resolute: daemontools 1:0.76-15build1 Β· LicenseRef-public-domain
- ubuntu stonking: daemontools 1:0.76-15build1 Β· LicenseRef-public-domain
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms