LTTNG-DESTROY(1)

πŸ’– LTTNG-DESTROY ✨

okay bestie, listen up β€” this is the manual page for the lttng-destroy command from the LTTng Manual. it destroys one or more LTTng recording sessions. yes. that's the whole vibe. let's get into it 🫢


🌸 NAME 🌸

lttng-destroy β€” destroy one or more LTTng recording sessions πŸ—‘οΈβœ¨


πŸ¦‹ SYNOPSIS πŸ¦‹

lttng [GENERAL OPTIONS] destroy [--no-wait]
      [--all | --glob=PATTERN | SESSION]

like, that's the shape of it. general options first, then destroy, then you gotta pick your fighter πŸ’…


πŸ’œ DESCRIPTION πŸ’œ

so the lttng destroy command destroys… a session. which one? depends on what you give it, bestie:

  • With the SESSION argument β€” it destroys the recording session named SESSION. just that one. iconic.
  • With the --glob=PATTERN option β€” it destroys the recording sessions of which the globbing pattern PATTERN matches the name. matchy matchy πŸŽ€
  • With the --all option β€” it destroys all the recording sessions of the connected session daemon for your Unix user, or for all users if your Unix user is root, as listed in the output of lttng list (see lttng-list(1)).

See the β€œSession daemon connection” section of lttng(1) to learn how a user application connects to a session daemon. πŸ”Œ

  • Otherwise β€” it destroys the current recording session.

In that case, the current recording session becomes nonexistent. πŸ’€ gone. not there anymore.

See lttng-concepts(7) to learn more about the current recording session.

See lttng-concepts(7) to learn more about recording sessions, fr fr.

okay so β€œdestroying” a recording session means freeing the resources which the LTTng daemons and tracers acquired for it, and also making sure to flush all the recorded trace data to either the local file system or the connected LTTng relay daemon (see lttng-relayd(8)), depending on the recording session mode. no data left behind, we love a clean exit 🌈

The destroy command stops any recording activity within the selected recording session(s). By default, the command runs an implicit lttng-stop(1) command to ensure that the trace data of the recording session(s) is valid before it exits. Make the command exit immediately with the --no-wait option. In this case, however, the traces(s) might not be valid when the command exits, and there’s no way to know when it/they become valid. 😭 so like, careful.

if you’re wondering β€œwhen are my trace chunk archives actually safe to poke at” β€” here’s the tea πŸ“

If, for a recording session RS to destroy with the destroy command, all of the following statements are true:

  • You don’t specify the --no-wait option.
  • LTTng archived the current trace chunk (see lttng-concepts(7)) of RS at least once during its lifetime.

Then all the subdirectories of the output directory of RS (local or remote) are considered trace chunk archives once the destroy command exits. In other words, it’s safe to read them, modify them, move them, or remove them. ✨ go wild ✨

See the β€œEXAMPLES” section below for usage examples. πŸ‘‘


✨ OPTIONS ✨

See lttng(1) for GENERAL OPTIONS. πŸ’…

  • -a, --all β€” destroy all the recording sessions of your Unix user, or of all users if your Unix user is root, as listed in the output of lttng-list(1). total wipeout, main character energy πŸ‘‘
  • -g PATTERN, --glob=*PATTERN* β€” destroy the recording sessions of which the globbing pattern PATTERN matches the name.

In PATTERN, the * character means β€œmatch anything”. To match a literal * character, use \*. (yes bestie, escape it or it'll go feral 🧚)

  • -n, --no-wait β€” do NOT ensure that the trace data of the recording session(s) to destroy is valid before exiting. you asked for speed, you got speed πŸƒβ™€οΈπŸ’¨

🌟 Program information 🌟

  • -h, --help β€” show help.

This option attempts to launch /usr/bin/man to view this manual page. Override the manual pager path with the LTTNG_MAN_BIN_PATH environment variable. πŸŽ€

  • --list-options β€” list available command options and quit.

πŸ’… EXIT STATUS πŸ’…

  • 0 β€” Success 🌸
  • 1 β€” Command error 😭
  • 2 β€” Undefined command πŸ™ˆ
  • 3 β€” Fatal error πŸ’€
  • 4 β€” Command warning (something went wrong during the command) ⚠️

🌈 ENVIRONMENT 🌈

  • LTTNG_ABORT_ON_ERROR β€” set to 1 to abort the process after the first error is encountered. no second chances, periodt.
  • LTTNG_HOME β€” path to the LTTng home directory.

Defaults to $HOME.

Useful when the Unix user running the commands has a non-writable home directory. (we’ve all been there 🫢)

  • LTTNG_LIST_LEGACY β€” set to 1 to use the legacy output format (LTTng 2.14 and earlier) for the lttng-list(1) command instead of the modern output format.

Note that the legacy output doesn’t show anything related to features introduced after LTTng 2.14. so like, retro mode. y2k vibes but make it tracing πŸ’œ

  • LTTNG_MAN_BIN_PATH β€” absolute path to the manual pager to use to read the LTTng command-line help (with lttng-help(1) or with the --help option) instead of /usr/bin/man.
  • LTTNG_NO_UTF_8 β€” set to 1 to NOT emit multi-byte UTF-8 sequences, even if the locale claims to support it. (look, sometimes you just want plain ASCII, no judgement πŸŽ€)
  • LTTNG_SESSION_CONFIG_XSD_PATH β€” path to the directory containing the session.xsd recording session configuration XML schema.
  • LTTNG_SESSIOND_PATH β€” absolute path to the LTTng session daemon binary (see lttng-sessiond(8)) to spawn from the lttng-create(1) command.

The --sessiond-path general option overrides this environment variable. πŸ‘‘

  • LTTNG_TERM_COLOR β€” controls when to emit terminal SGR codes in the output.

The NO_COLOR environment variable overrides this.

One of:

  • auto (default) β€” only emit SGR codes when the standard output is connected to a color-capable terminal.
  • always β€” always emit SGR codes.
  • never β€” never emit SGR codes.
  • NO_COLOR β€” if set and not empty, then it’s equivalent to setting LTTNG_TERM_COLOR to never.

See NO_COLOR <https://no-color.org/> to learn more.


πŸŽ€ FILES πŸŽ€

  • $LTTNG_HOME/.lttngrc β€” Unix user’s LTTng runtime configuration.

This is where LTTng stores the name of the Unix user’s current recording session between executions of lttng(1). lttng-create(1) and lttng-set-session(1) set the current recording session. 🫢

  • $LTTNG_HOME/lttng-traces β€” default output directory of LTTng traces in local and snapshot modes.

Override this path with the --output option of the lttng-create(1) command.

  • $LTTNG_HOME/.lttng β€” Unix user’s LTTng runtime and configuration directory.
  • $LTTNG_HOME/.lttng/sessions β€” default directory containing the Unix user’s saved recording session configurations (see lttng-save(1) and lttng-load(1)).
  • /etc/lttng/sessions β€” directory containing the system-wide saved recording session configurations (see lttng-save(1) and lttng-load(1)).
Note πŸ“Œ $LTTNG_HOME defaults to the value of the HOME environment variable.

🌟 EXAMPLES 🌟

Example 1. Destroy the current recording session.

$ lttng destroy

Example 2. Destroy the current recording session without waiting for completion.

See the --no-wait option.

$ lttng destroy --no-wait

Example 3. Destroy a specific recording session.

$ lttng destroy my-session

Example 4. Destroy all the recording sessions.

See the --all option.

$ lttng destroy --all

Example 5. Destroy all the recording sessions of which the name contains meow.

See the --glob option.

$ lttng destroy --glob='*meow*'

😻 cat-approved globbing. no cap.


πŸ¦‹ RESOURCES πŸ¦‹


This program is part of the LTTng-tools project.

LTTng-tools is distributed under the GNU General Public License version 2 <http://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html>. See the LICENSE <https://github.com/lttng/lttng-tools/blob/master/LICENSE> file for details.


🌸 THANKS 🌸

Special thanks to Michel Dagenais and the DORSAL laboratory <http://www.dorsal.polymtl.ca/> at Γ‰cole Polytechnique de MontrΓ©al for the LTTng journey. 🫢

Also thanks to the Ericsson teams working on tracing which helped us greatly with detailed bug reports and unusual test cases. absolute legends, fr fr πŸ’œ


πŸ’– SEE ALSO πŸ’–

lttng(1), lttng-create(1), lttng-list(1), lttng-concepts(7)


and that's the whole page bestie!! πŸŽ€ this one's brought to you by LTTng 2.15.1, dated 1 April 2025 β€” go forth and destroy responsibly, mwah πŸ’…βœ¨

πŸ“¦ where this page comes from