Fix: action-executor: leak of `work_item::subitems` field
[lttng-tools.git] / doc / man / lttng-sessiond.8.txt
CommitLineData
ee717bf0
PP
1lttng-sessiond(8)
2=================
484b2a0c 3:revdate: 21 April 2021
26f0c779
PP
4:daemon-bin-name: lttng-sessiond
5:daemon-ini-section: sessiond
ee717bf0
PP
6
7
8NAME
9----
484b2a0c 10lttng-sessiond - LTTng session daemon
ee717bf0
PP
11
12
13SYNOPSIS
14--------
15[verse]
16*lttng-sessiond* [option:--background | option:--daemonize] [option:--sig-parent]
17 [option:--config='PATH'] [option:--group='GROUP'] [option:--load='PATH']
18 [option:--agent-tcp-port='PORT']
19 [option:--apps-sock='PATH'] [option:--client-sock='PATH']
20 [option:--no-kernel | [option:--kmod-probes='PROBE'[,'PROBE']...]
21 [option:--extra-kmod-probes='PROBE'[,'PROBE']...]
22 [option:--kconsumerd-err-sock='PATH']
23 [option:--kconsumerd-cmd-sock='PATH']]
24 [option:--ustconsumerd32-err-sock='PATH']
25 [option:--ustconsumerd64-err-sock='PATH']
26 [option:--ustconsumerd32-cmd-sock='PATH']
27 [option:--ustconsumerd64-cmd-sock='PATH']
28 [option:--consumerd32-path='PATH'] [option:--consumerd32-libdir='PATH']
29 [option:--consumerd64-path='PATH'] [option:--consumerd64-libdir='PATH']
484b2a0c
PP
30 [option:--event-notifier-error-buffer-size-kernel='SLOTS']
31 [option:--event-notifier-error-buffer-size-userspace='SLOTS']
32 [option:--quiet | [option:--verbose]... [option:--verbose-consumer]]
ee717bf0
PP
33
34
35DESCRIPTION
36-----------
484b2a0c 37include::common-intro.txt[]
ee717bf0 38
484b2a0c 39An LTTng session daemon, `lttng-sessiond`, is a program which:
ee717bf0 40
26f0c779
PP
41* Manages tracing sessions (see man:lttng-concepts(7) to learn more
42 about tracing sessions).
ee717bf0 43
484b2a0c
PP
44* Controls the various components (like tracers and consumer daemons) of
45 LTTng.
ee717bf0 46
484b2a0c 47* Sends asynchronous notifications to user applications.
ee717bf0 48
484b2a0c
PP
49A session daemon receives commands from the man:lttng(1) command-line
50tool, as well as from any user application linked with the LTTng control
51library (`liblttng-ctl`).
ee717bf0 52
484b2a0c
PP
53Each Unix user may have its own independent running session daemon.
54However, the man:lttng(1) tool must connect to the session daemon of the
55`root` user (the root session daemon) to control Linux kernel tracing.
ee717bf0 56
484b2a0c
PP
57When you start `lttng-sessiond` as the `root` Unix user, a non-root Unix
58user can connect to it if it's part of the Unix tracing group. By
59default, the name of the tracing group is `tracing`. Override the
60tracing group name with the option:--group option.
ee717bf0 61
484b2a0c
PP
62See the ``Session daemon connection'' section of man:lttng(1) to learn
63how a user application connects to a session daemon.
41c9a411 64
484b2a0c
PP
65A session daemon manages trace data consumer daemons, spawning them when
66necessary. You do :not: need to manage the consumer daemons yourself.
41c9a411 67
484b2a0c
PP
68By default, `lttng-sessiond` doesn't start as a daemon. Make it a daemon
69with the option:--daemonize or option:--background option. With those
70options, `lttng-sessiond` ensures the daemon is ready to receive client
71commands before it exits.
41c9a411 72
484b2a0c
PP
73NOTE: The LTTng project recommends that you start the session daemon at
74boot time for stable and long-term tracing.
ee717bf0 75
26f0c779
PP
76[NOTE]
77====
78For an unprivileged Unix user running `lttng-sessiond`, the maximum
79number of file descriptors per process is usually 1024. This limits the
80number of traceable applications, since, for each instrumented
81application, there are two file descriptors per CPU as well as one
82socket for bidirectional communication.
41c9a411 83
26f0c779
PP
84For the `root` user, the limit is usually 65,535.
85====
484b2a0c 86
484b2a0c 87
26f0c779 88include::common-daemon-cfg.txt[]
484b2a0c
PP
89
90INI configuration file example:
91
92[source,ini]
93----
94[sessiond]
95daemonize=yes
96extra-kmod-probes=my-driver,other-module
97----
98
99
100[[load]]
101Tracing session configuration loading
102~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
103When the session daemon starts, it loads tracing session configurations
104from:
ee717bf0 105
484b2a0c
PP
106Without the option:--load option::
107 In this order:
108+
109--
110. All the files in `$LTTNG_HOME/.lttng/sessions/auto`.
111+
112`$LTTNG_HOME` defaults to `$HOME`.
113
114. All the files in +{system_sessions_auto_dir}+.
115--
116+
117`lttng-sessiond` only loads tracing configuration files from the
118directories above if its UID and their UID are the same.
ee717bf0 119
484b2a0c
PP
120With the option:--load='PATH' option::
121 'PATH' is a directory:::
122 All the files in 'PATH'.
123
124 'PATH' is a file:::
125 The file 'PATH'.
126
127
128[[options]]
ee717bf0
PP
129OPTIONS
130-------
26f0c779
PP
131General daemon configuration
132~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ee717bf0 133option:-b, option:--background::
484b2a0c
PP
134 Start as a Unix daemon, but keep file descriptors (console) open.
135+
136With this option, `lttng-sessiond` ensures the daemon is ready to
137receive client commands before it exits.
138+
139Use the option:--daemonize option instead to close the file descriptors.
ee717bf0 140
63e7895a 141option:-f 'PATH', option:--config='PATH'::
484b2a0c
PP
142 Configure the daemon using the INI configuration file 'PATH' in
143 addition to the default configuration files and the command-line
144 options.
145+
146See the <<cfg,Daemon configuration>> section above.
6a0e3480 147
ee717bf0 148option:-d, option:--daemonize::
484b2a0c
PP
149 Start as a Unix daemon and close file descriptors (console).
150+
151With this option, `lttng-sessiond` ensures the daemon is ready to
152receive client commands before it exits.
153+
154Use the option:--background option instead to keep the file descriptors
155open.
ee717bf0 156
63e7895a 157option:-g 'GROUP', option:--group='GROUP'::
484b2a0c
PP
158 Set the Unix tracing group to 'GROUP' instead of `tracing`.
159+
160This option is only meaningful when the `root` Unix user starts
161`lttng-sessiond`.
162+
163Members of the Unix tracing group may connect to the root session daemon
164and, therefore, control LTTng kernel tracing.
ee717bf0 165
63e7895a 166option:-l 'PATH', option:--load='PATH'::
484b2a0c
PP
167 Load tracing session configurations from 'PATH', either a directory
168 or a file, instead of loading them from the default search
169 directories.
170+
171See the <<load,Tracing session configuration loading>> section above.
ee717bf0
PP
172
173option:-S, option:--sig-parent::
484b2a0c 174 Send the `USR1` signal to the parent process to notify readiness.
ee717bf0 175+
484b2a0c
PP
176You can also use the option:--daemonize or option:--background option,
177in which case `lttng-sessiond` ensures the daemon is ready to receive
178client commands before it exits.
761ffce2 179
ee717bf0
PP
180
181Linux kernel tracing
182~~~~~~~~~~~~~~~~~~~~
484b2a0c
PP
183At most one of:
184
ee717bf0 185option:--extra-kmod-probes='PROBE'[,'PROBE']...::
484b2a0c
PP
186 For each 'PROBE' argument, load the LTTng kernel probe module
187 named ++lttng-probe-++__PROBE__++.ko++, in addition to loading the
188 default LTTng kernel probe modules.
26f0c779
PP
189+
190See also the `LTTNG_EXTRA_KMOD_PROBES` environment variable.
ee717bf0
PP
191
192option:--kmod-probes='PROBE'[,'PROBE']...::
484b2a0c
PP
193 Only load, for each 'PROBE' argument, the LTTng kernel probe
194 module named ++lttng-probe-++__PROBE__++.ko++, instead of loading
195 the default LTTng kernel probe modules.
26f0c779
PP
196+
197See also the `LTTNG_KMOD_PROBES` environment variable.
ee717bf0
PP
198
199option:--no-kernel::
200 Disable Linux kernel tracing.
201
202
203Paths and ports
204~~~~~~~~~~~~~~~
205option:--agent-tcp-port='PORT'::
484b2a0c
PP
206 Listen on TCP port 'PORT' for agent application registration
207 instead of a port within the range
2288467f 208 [{default_agent_tcp_port_range_begin},{nbsp}{default_agent_tcp_port_range_end}]).
ee717bf0 209
59b19c3c 210option:-a 'PATH', option:--apps-sock='PATH'::
484b2a0c 211 Set the application Unix socket path to 'PATH'.
ee717bf0 212
59b19c3c 213option:-c 'PATH', option:--client-sock='PATH'::
484b2a0c 214 Set the client Unix socket path to 'PATH'.
ee717bf0
PP
215
216option:--consumerd32-libdir='PATH'::
484b2a0c 217 Set the 32-bit consumer daemon library directory to 'PATH'.
26f0c779
PP
218+
219See also the `LTTNG_CONSUMERD32_LIBDIR` environment variable.
ee717bf0
PP
220
221option:--consumerd32-path='PATH'::
484b2a0c 222 Set the 32-bit consumer daemon binary path to 'PATH'.
26f0c779
PP
223+
224See also the `LTTNG_CONSUMERD32_BIN` environment variable.
ee717bf0
PP
225
226option:--consumerd64-libdir='PATH'::
484b2a0c 227 Set the 64-bit consumer daemon library directory to 'PATH'.
26f0c779
PP
228+
229See also the `LTTNG_CONSUMERD64_LIBDIR` environment variable.
ee717bf0
PP
230
231option:--consumerd64-path='PATH'::
484b2a0c 232 Set the 64-bit consumer daemon binary path to 'PATH'.
26f0c779
PP
233+
234See also the `LTTNG_CONSUMERD32_BIN` environment variable.
ee717bf0
PP
235
236option:--kconsumerd-cmd-sock='PATH'::
484b2a0c 237 Set the command Unix socket path of the Linux kernel consumer daemon
ee717bf0
PP
238 to 'PATH'.
239
240option:--kconsumerd-err-sock='PATH'::
484b2a0c 241 Set the error Unix socket path of the Linux kernel consumer daemon
ee717bf0
PP
242 to 'PATH'.
243
244option:--ustconsumerd32-cmd-sock='PATH'::
484b2a0c
PP
245 Set the Unix socket path of the 32-bit consumer daemon command to
246 'PATH'.
ee717bf0
PP
247
248option:--ustconsumerd64-cmd-sock='PATH'::
484b2a0c
PP
249 Set the Unix socket path of the 64-bit consumer daemon command to
250 'PATH'.
ee717bf0
PP
251
252option:--ustconsumerd32-err-sock='PATH'::
484b2a0c
PP
253 Set the Unix socket path of the 32-bit consumer daemon error to
254 'PATH'.
ee717bf0
PP
255
256option:--ustconsumerd64-err-sock='PATH'::
484b2a0c
PP
257 Set the Unix socket path of the 64-bit consumer daemon error to
258 'PATH'.
259
260
261Buffer size of event notifier error counters
262~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
263option:--event-notifier-error-buffer-size-kernel='SLOTS'::
264 Set the size of the kernel event notifier error counter buffers to
265 'SLOTS'{nbsp}slots.
266
267option:--event-notifier-error-buffer-size-userspace='SLOTS'::
268 Set the size of the user space event notifier error counter buffers
269 to 'SLOTS'{nbsp}slots.
270
271As of LTTng{nbsp}{lttng_version}, a _slot_ is a 32-bit counter, but this
272may change in the future.
ee717bf0
PP
273
274
275Verbosity
276~~~~~~~~~
277option:-q, option:--quiet::
278 Suppress all messages, including warnings and errors.
484b2a0c
PP
279+
280You may :not: use this option with the option:--verbose and
281option:--verbose-consumer options.
ee717bf0
PP
282
283option:-v, option:--verbose::
284 Increase verbosity.
285+
484b2a0c
PP
286Specify this option up to three times to get more levels of verbosity.
287+
288You may :not: use this option with the option:--quiet option.
ee717bf0
PP
289
290option:--verbose-consumer::
484b2a0c
PP
291 Increase the verbosity of the consumer daemons which this session
292 daemon spawns.
293+
294You may :not: use this option with the option:--quiet option.
ee717bf0
PP
295
296
297Program information
298~~~~~~~~~~~~~~~~~~~
484b2a0c 299include::common-help-option.txt[]
ee717bf0
PP
300
301option:-V, option:--version::
484b2a0c 302 Show version and quit.
ee717bf0
PP
303
304
305ENVIRONMENT VARIABLES
306---------------------
9bbd8e06 307`LTTNG_ABORT_ON_ERROR`::
484b2a0c
PP
308 Set to `1` to abort the process after the first error is
309 encountered.
9bbd8e06 310
ee717bf0 311`LTTNG_APP_SOCKET_TIMEOUT`::
484b2a0c
PP
312 Timeout (in seconds) of the application socket when
313 sending/receiving commands.
314+
315After this period of time, `lttng-sessiond` unregisters the application.
316+
317Set to `0` or `-1` to set an infinite timeout.
318+
319Default: +{default_app_socket_rw_timeout}+.
ee717bf0
PP
320
321`LTTNG_CONSUMERD32_BIN`::
322 32-bit consumer daemon binary path.
323+
26f0c779
PP
324The option:--consumerd32-path option overrides this environment
325variable.
ee717bf0
PP
326
327`LTTNG_CONSUMERD32_LIBDIR`::
484b2a0c 328 32-bit consumer daemon library directory path.
ee717bf0 329+
26f0c779
PP
330The option:--consumerd32-libdir option overrides this environment
331variable.
ee717bf0
PP
332
333`LTTNG_CONSUMERD64_BIN`::
334 64-bit consumer daemon binary path.
335+
26f0c779
PP
336The option:--consumerd64-path option overrides this environment
337variable.
ee717bf0
PP
338
339`LTTNG_CONSUMERD64_LIBDIR`::
484b2a0c 340 64-bit consumer daemon library directory path.
ee717bf0 341+
26f0c779
PP
342The option:--consumerd64-libdir option overrides this environment
343variable.
ee717bf0
PP
344
345`LTTNG_DEBUG_NOCLONE`::
484b2a0c
PP
346 Set to `1` to disable the use of man:clone(2)/man:fork(2).
347+
26f0c779
PP
348Setting this environment variable is considered insecure, but it's
349required to allow debuggers to work with `lttng-sessiond` on some
350operating systems.
ee717bf0
PP
351
352`LTTNG_EXTRA_KMOD_PROBES`::
484b2a0c 353 Extra LTTng kernel probe modules to load.
ee717bf0 354+
484b2a0c
PP
355See the option:--extra-kmod-probes option which overrides this
356environment variable.
ee717bf0
PP
357
358`LTTNG_KMOD_PROBES`::
484b2a0c 359 Exclusive LTTng kernel probe modules to load.
ee717bf0 360+
484b2a0c
PP
361See the option:--kmod-probes option which overrides this environment
362variable.
ee717bf0
PP
363
364`LTTNG_NETWORK_SOCKET_TIMEOUT`::
484b2a0c
PP
365 Socket connection, receive, and send timeout (milliseconds).
366+
367Set to `0` or `-1` to use the timeout of the operating system (default).
ee717bf0
PP
368
369`LTTNG_SESSION_CONFIG_XSD_PATH`::
370 Tracing session configuration XML schema definition (XSD) path.
371
372
900690ca
PP
373FILES
374-----
375`$LTTNG_HOME/.lttng`::
484b2a0c 376 Unix user's LTTng runtime and configuration directory.
900690ca
PP
377
378`$LTTNG_HOME/lttng-traces`::
484b2a0c
PP
379 Default output directory of LTTng traces in local and snapshot
380 modes.
381+
382Override this path with the nloption:--output option of the
383man:lttng-create(1) command.
900690ca 384
41c9a411 385`$LTTNG_HOME/.lttng/sessions/auto`::
484b2a0c
PP
386 Directory from which `lttng-sessiond` loads Unix user tracing
387 session configurations when starting.
388+
389See the <<load,Tracing session configuration loading>> section above to
390learn more.
41c9a411
PP
391
392+{system_sessions_auto_dir}+::
484b2a0c
PP
393 Directory from which `lttng-sessiond` loads system-wide tracing
394 session configurations when starting.
395+
396See the <<load,Tracing session configuration loading>> section above to
397learn more.
900690ca
PP
398
399`$LTTNG_HOME/.lttng/lttng.conf`::
484b2a0c
PP
400 Unix user's LTTng daemon INI configuration file.
401+
402See the <<cfg,Daemon configuration>> section above to learn more.
900690ca 403
d8065e7e 404+{system_lttng_conf}+::
484b2a0c
PP
405 System-wide LTTng daemon INI configuration file.
406+
407See the <<cfg,Daemon configuration>> section above to learn more.
900690ca 408
484b2a0c 409NOTE: `$LTTNG_HOME` defaults to `$HOME`.
900690ca
PP
410
411
ee717bf0
PP
412EXIT STATUS
413-----------
414*0*::
415 Success
416
417*1*::
418 Error
419
420*3*::
421 Fatal error
422
423
ee717bf0
PP
424include::common-footer.txt[]
425
426
427SEE ALSO
428--------
26f0c779
PP
429man:lttng(1),
430man:lttng-concepts(7)
This page took 0.051598 seconds and 4 git commands to generate.