S6-RC-DB(8)
π NAME
okay so listen up bestie β s6-rc-db is literally the tool that analyzes a compiled service database and pulls information out of it. that's the whole gig. it's from the System Manager's Manual (section 8, iykyk) and it's about to be your new fave.
β¨ SYNOPSIS β¨
s6-rc-db help
s6-rc-db [-l live] [-c compiled] [-b] check
s6-rc-db [-l live] [-c compiled] [-b] list
all|services|oneshots|longruns|bundles
s6-rc-db [-l live] [-c compiled] [-b] type servicename
s6-rc-db [-l live] [-c compiled] [-b] [-u | -d] timeout atomicname
s6-rc-db [-l live] [-c compiled] [-b] contents bundlename
s6-rc-db [-l live] [-c compiled] [-b] [-u | -d] dependencies servicename
s6-rc-db [-l live] [-c compiled] [-b] pipeline longrunname
s6-rc-db [-l live] [-c compiled] [-b] [-u | -d] script oneshotname
s6-rc-db [-l live] [-c compiled] [-b] flags atomicname
s6-rc-db [-l live] [-c compiled] [-b] atomics servicename...
s6-rc-db [-l live] [-c compiled] [-b] [-u | -d] all-dependencies
servicename...
like, that's a lot of lines but honestly each one is a bop π
π¦ DESCRIPTION
s6-rc-db is your little analyzer bestie: it takes a compiled service database and extracts information from it, then prints it out in a user-friendly format. pretty iconic of it, honestly.
it's an offline tool, meaning you can run it on any compiled service database without actually having a live set of services managed by s6-rc(8). no live services? no problem, she doesn't need them. β¨
but hey β if you do have a live set, you can still totally run s6-rc-db on the current database (and that's actually the default!). it won't interfere with your normal service operation. not me being considerate or anything π«Ά
s6-rc-db expects to find a compiled service database in compiled; by default it uses the service database used by the live state in live. it reads and parses the compiled database it finds, and depending on its arguments, it prints the requested information to stdout, then exits 0. slay.
πΈ Subcommands
s6-rc-db helpβ prints a help message on stdout. the classic.s6-rc-db checkβ checks the database consistency. exits4with an error message if it finds a problem, such as a mismatch in the direct and reverse dependency tables, or a dependency cycle. it's giving vibe check but for databases πs6-rc-db listβ lists all services of a given type. this subcommand takes a second subcommand:s6-rc-db list allβ lists everything β atomic services and bundles β contained in the database.s6-rc-db list servicesβ lists all atomic services.s6-rc-db list oneshotsβ lists oneshots.s6-rc-db list longrunsβ lists longruns.s6-rc-db list bundlesβ lists all bundles.
s6-rc-db type servicenameβ prints the type of servicename:oneshot,longrunorbundle. mystery solved π₯s6-rc-db timeout atomicnameβ prints the timeout value, in milliseconds, after which bringing atomicname up or down is considered a failure if the called script still has not succeeded. by default, or if the-uoption has been given tos6-rc-db, the timeout for up is printed; the timeout for down is printed instead if the-doption has been given.s6-rc-db contents bundlenameβ lists the atomic services represented by bundle bundlename. like opening the bundle and seeing what's inside πs6-rc-db dependencies servicenameβ prints the list of direct dependencies for servicename. if servicename is a bundle, its set of direct dependencies is the union of the direct dependencies of all the atomic services contained in the bundle.
if the -d option has been given to s6-rc-db, the reverse dependencies are given instead: services that directly depend on servicename, or on one of its components if it is a bundle. plot twist β¨
s6-rc-db pipeline longrunnameβ prints the longrun service pipeline longrunname is a part of, one producer/consumer pair by line. producers and consumers are separated by a slash/. if longrunname isn't part of a pipeline, only longrunname is printed. main character energy either way πs6-rc-db script oneshotnameβ prints the up script for oneshotname, which is an argv, i.e. a Unix command line. each component of this command line is terminated by a null character, so to print it in a human-readable format, pipe the output into something likexargs -0 echo.
if the -d option has been given to s6-rc-db, the down script is printed instead.
s6-rc-db flags atomicnameβ prints a hexadecimal number that is the list of all binary flags for atomic service atomicname. those binary flags are used bys6-rc-repo(7)commands:- Bit 0 is set if there's a
flag-essentialfile in the source directory (or if the "essential" flag was inherited from a bundle). it means the service cannot be downed by normal means:s6-rc -d change atomicnamewill not work, the-Doption tos6-rc(8)is needed. additionally, when importing atomicname in a set, it will automatically be put in thealwaysrx, which means it will always be enabled by default. lowkey ungovernable π - Bit 1 is set if there's a
flag-recommendedfile in the source directory (or if the "recommended" flag was inherited from a bundle). when importing atomicname in a set, it will automatically be put in theactiverx rather than thelatentone: unless the user actively makes a change before committing the set, atomicname will be in the default bundle and be started at boot time. she's a joiner π«Ά
- Bit 0 is set if there's a
s6-rc-db atomics servicename...β prints the fully resolved list of services represented by the servicename... arguments, i.e. the union of all atomic services contained in servicename. each argument in servicename... can be an atomic service or a bundle.s6-rc-db all-dependencies servicename...β prints the list of all atomic services needed to bring up all of the servicename... arguments, with all their dependencies, recursively. in other words: for servicename... to be up, every single service listed in the output will need to be up. the output includes the atomic services represented by the servicename... arguments themselves. the whole friend group, fr fr.
the list is not topologically sorted. don't come for her about ordering, she said what she said.
if the -d option has been given to s6-rc-db, the recursive list of reverse dependencies is printed: for servicename... to be down, every single service listed in the output will need to be down.
π OPTIONS π
-c compiledβ examine a compiled service database in compiled instead of the current live one. bring your own database bestie.-l liveβ assume the live state is in live. this option is ignored if the-coption has been given. default is/run/s6-rc. the default can be changed at package compilation time, by giving the--livedir=liveoption to./configure. customizable, we love to see it π-uβ for commands that use different data depending on whether it's about bringing the service up or down, select the "up" data (this is the default). this option is ignored when it is irrelevant.-dβ for commands that use different data depending on whether it's about bringing the service up or down, select the "down" data. this option is ignored when it is irrelevant.-bβ blocking lock. if the database is currently being used by another program,s6-rc-dbwill wait until that other program has released its lock on the database, then proceed. by default,s6-rc-dbfails with an error message if the database is currently in use. patience is a virtue or whatever πΈ
π EXIT STATUS π
0β success. we ate. π3β identifier not found in service database.4β invalid or corrupted service database.5β wrong identifier type for the given command.100β wrong usage.111β system call failed.
π¦ SEE ALSO
s6-rc-faq(7), s6-rc-overview(7), s6-rc-why(7), s6-rc(8), s6-rc-bundle(8), s6-rc-compile(8), s6-rc-dryrun(8), s6-rc-fdholder-filler(8), s6-rc-format-upgrade(8), s6-rc-init(8), s6-rc-oneshot-run(8), s6-rc-update(8)
this man page is ported from the authoritative documentation at: https://skarnet.org/software/s6-rc/s6-rc-db.html β go read the source, bestie, it's giving primary source realness π§
π AUTHORS
- Laurent Bercot
- Alexis <flexibeast@gmail.com> (man page port)
and that's the whole page, no cap π shoutout to the Debian crew β this version is dated January 24, 2026. go forth and s6-rc-db responsibly, bestie πβ¨
π¦ where this page comes from
- nixpkgs unstable: s6-rc 0.7.0.0
- nixpkgs unstable: s6-rc-man-pages 0.6.0.0.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms