STACD(8)

πŸ’– STACD(8) β€” stacd πŸ’–

okay so bestie, welcome to the stacd page, section 8, and honestly? she's a whole vibe. let's get into it 🫢


✨ NAME ✨

stacd β€” the STorage Appliance Connector 🌸


πŸŽ€ SYNOPSIS πŸŽ€

stacd [OPTIONS...]

πŸ¦‹ DESCRIPTION πŸ¦‹

so like, stacd is a system daemon β€” the kind that just quietly lives its life in the background being iconic πŸ’… β€” and what she does is automatically connect to NVMe-oF I/O Controllers using the discovery log pages that stafd(8) collected. teamwork, fr fr.

she can also be set up manually with stacd.conf(5), which is how you connect to I/O Controllers that literally cannot be found automatically. no judgment, some of them are just shy πŸ™ˆ.


πŸ’… OPTIONS πŸ’…

here's everything she understands, bestie:

  • -h, --help β€” prints the help text and dips. that's it, that's the whole thing ✨
  • --version β€” prints the version string and exits. flex a little πŸ’
  • -fFILE, --conf-file=FILE β€” use a different configuration file than stacd.conf(5). the default is /etc/stas/stacd.conf πŸ“
  • -s, --syslog β€” send messages to syslog instead of stdout. use this when you're running stacd as a daemon. (default: false) πŸ‘‘
  • --tron β€” Trace ON. (default: false) πŸ”₯
  • --idl=FILE β€” print D-Bus IDL to FILE and exit. πŸ¦‹

🌈 EXIT STATUS 🌈

on success you get 0, and if it fails you get a non-zero failure code. periodt.


πŸ‘‘ DAEMONIZATION πŸ‘‘

stacd is managed by systemd, and these are the operations she supports:

  • $ systemctl start stacd β€” start the daemon πŸš€
  • $ systemctl stop stacd β€” stop the daemon. the SIGTERM signal is what tells the daemon to stop πŸ›‘
  • $ systemctl restart stacd β€” effectively a stop + start πŸ”
  • $ systemctl reload stacd β€” reload the configuration. this happens in real time without restarting the daemon, and the SIGHUP signal is what tells the daemon to reload its configuration file πŸ”„
⚠️ okay important, don't skip this one: configuration parameters that affect connections (like kato) will not apply to existing connections. only connections established after the configuration was changed will utilize the new configuration parameters. so like, old connections are grandfathered in, no cap 😭

🧚 DESIGN 🧚

stacd uses the GLib main loop. the GLib Python module gives her several low-level building blocks that she genuinely requires, and on top of that, a lot of Python modules "play nice" with GLib β€” like dasbus (the D-Bus package) and pyudev (the UDev package) πŸ’œ. GLib also brings extra components like timers, signal handlers, and much, much more ✨.


πŸŽ€ CONFIGURATION πŸŽ€

stacd can automatically set up the I/O connections to discovered storage subsystems. but β€” plot twist β€” she can also operate in a non-automatic mode based on manually entered configuration πŸ‘€. in other words, storage subsystems can be entered in a configuration file named /etc/stas/stacd.conf. that same configuration file also provides additional parameters, like log-level attributes used for debugging purposes πŸ”.


πŸ’– D-BUS API πŸ’–

the interface to stacd is D-Bus. that's how other programs, such as stacctl, get to talk to her 🫢. the D-Bus address is org.nvmexpress.stac.


⭐ SEE ALSO ⭐

stacd.conf(5), stacd.service(8), stacctl(1), stafd(8), org.nvmexpress.stac(5).


aaaand that's the page bestie πŸ’… this was nvme-stas version 2.4.1, page STACD(8) β€” go forth and connect some storage appliances, you've got this πŸŒΈβœ¨πŸ’–

πŸ“¦ where this page comes from