lttng-destroy(1)
================
:revdate: 1 April 2025


NAME
----
lttng-destroy - Destroy one or more LTTng recording sessions


SYNOPSIS
--------
[verse]
*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *destroy* [option:--no-wait]
      [option:--all | option:--glob='PATTERN' | 'SESSION']


DESCRIPTION
-----------
The `lttng destroy` command destroys:

With the 'SESSION' argument::
    The recording session named 'SESSION'.

With the option:--glob='PATTERN' option::
    The recording sessions of which the globbing pattern
    'PATTERN' matches the name.

With the option:--all option::
    *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 man:lttng-list(1)).
+
See the ``Session daemon connection'' section of man:lttng(1) to learn
how a user application connects to a session daemon.

Otherwise::
    The current recording session.
+
In that case, the current recording session becomes nonexistent.
+
See man:lttng-concepts(7) to learn more about
the current recording session.

See man:lttng-concepts(7) to learn more about recording sessions.

``Destroying'' a recording session means freeing the resources which the
LTTng daemons and tracers acquired for it, also making sure to flush all
the recorded trace data to either the local file system or the connected
LTTng relay daemon (see man:lttng-relayd(8)), depending on the recording
session mode.

The `destroy` command stops any recording activity within the selected
recording session(s). By default, the command runs an implicit
man: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 option:--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.

If, for a recording session{nbsp}__RS__ to destroy with the `destroy`
command, all of the following statements are true:

* You don't specify the option:--no-wait option.

* LTTng archived the current trace chunk (see man:lttng-concepts(7))
  of{nbsp}__RS__ at least once during its lifetime.

Then all the subdirectories of the output directory of{nbsp}__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 then.

See the ``<<examples,EXAMPLES>>'' section below for usage examples.


include::common-lttng-cmd-options-head.txt[]


option:-a, option:--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
    man:lttng-list(1).

option:-g 'PATTERN', option:--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 :escwc:.

option:-n, option:--no-wait::
    Do :not: ensure that the trace data of the recording session(s) to
    destroy is valid before exiting.


include::common-lttng-cmd-help-options.txt[]


include::common-lttng-cmd-after-options.txt[]


[[examples]]
EXAMPLES
--------
.Destroy the current recording session.
====
[role="term"]
----
$ lttng destroy
----
====

.Destroy the current recording session without waiting for completion.
====
See the option:--no-wait option.

[role="term"]
----
$ lttng destroy --no-wait
----
====

.Destroy a specific recording session.
====
[role="term"]
----
$ lttng destroy my-session
----
====

.Destroy all the recording sessions.
====
See the option:--all option.

[role="term"]
----
$ lttng destroy --all
----
====

.Destroy all the recording sessions of which the name contains with `meow`.
====
See the option:--glob option.

[role="term"]
----
$ lttng destroy --glob='*meow*'
----
====


include::common-footer.txt[]


SEE ALSO
--------
man:lttng(1),
man:lttng-create(1),
man:lttng-list(1),
man:lttng-concepts(7)
