3 :revdate: 21 April 2021
4 :daemon-bin-name: lttng-sessiond
5 :daemon-ini-section: sessiond
10 lttng-sessiond - LTTng session daemon
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']
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]]
37 include::common-intro.txt[]
39 An LTTng session daemon, `lttng-sessiond`, is a program which:
41 * Manages tracing sessions (see man:lttng-concepts(7) to learn more
42 about tracing sessions).
44 * Controls the various components (like tracers and consumer daemons) of
47 * Sends asynchronous notifications to user applications.
49 A session daemon receives commands from the man:lttng(1) command-line
50 tool, as well as from any user application linked with the LTTng control
51 library (`liblttng-ctl`).
53 Each Unix user may have its own independent running session daemon.
54 However, 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.
57 When you start `lttng-sessiond` as the `root` Unix user, a non-root Unix
58 user can connect to it if it's part of the Unix tracing group. By
59 default, the name of the tracing group is `tracing`. Override the
60 tracing group name with the option:--group option.
62 See the ``Session daemon connection'' section of man:lttng(1) to learn
63 how a user application connects to a session daemon.
65 A session daemon manages trace data consumer daemons, spawning them when
66 necessary. You do :not: need to manage the consumer daemons yourself.
68 By default, `lttng-sessiond` doesn't start as a daemon. Make it a daemon
69 with the option:--daemonize or option:--background option. With those
70 options, `lttng-sessiond` ensures the daemon is ready to receive client
71 commands before it exits.
73 NOTE: The LTTng project recommends that you start the session daemon at
74 boot time for stable and long-term tracing.
78 For an unprivileged Unix user running `lttng-sessiond`, the maximum
79 number of file descriptors per process is usually 1024. This limits the
80 number of traceable applications, since, for each instrumented
81 application, there are two file descriptors per CPU as well as one
82 socket for bidirectional communication.
84 For the `root` user, the limit is usually 65,535.
88 include::common-daemon-cfg.txt[]
90 INI configuration file example:
96 extra-kmod-probes=my-driver,other-module
101 Tracing session configuration loading
102 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
103 When the session daemon starts, it loads tracing session configurations
106 Without the option:--load option::
110 . All the files in `$LTTNG_HOME/.lttng/sessions/auto`.
112 `$LTTNG_HOME` defaults to `$HOME`.
114 . All the files in +{system_sessions_auto_dir}+.
117 `lttng-sessiond` only loads tracing configuration files from the
118 directories above if its UID and their UID are the same.
120 With the option:--load='PATH' option::
121 'PATH' is a directory:::
122 All the files in 'PATH'.
131 General daemon configuration
132 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
133 option:-b, option:--background::
134 Start as a Unix daemon, but keep file descriptors (console) open.
136 With this option, `lttng-sessiond` ensures the daemon is ready to
137 receive client commands before it exits.
139 Use the option:--daemonize option instead to close the file descriptors.
141 option:-f 'PATH', option:--config='PATH'::
142 Configure the daemon using the INI configuration file 'PATH' in
143 addition to the default configuration files and the command-line
146 See the <<cfg,Daemon configuration>> section above.
148 option:-d, option:--daemonize::
149 Start as a Unix daemon and close file descriptors (console).
151 With this option, `lttng-sessiond` ensures the daemon is ready to
152 receive client commands before it exits.
154 Use the option:--background option instead to keep the file descriptors
157 option:-g 'GROUP', option:--group='GROUP'::
158 Set the Unix tracing group to 'GROUP' instead of `tracing`.
160 This option is only meaningful when the `root` Unix user starts
163 Members of the Unix tracing group may connect to the root session daemon
164 and, therefore, control LTTng kernel tracing.
166 option:-l 'PATH', option:--load='PATH'::
167 Load tracing session configurations from 'PATH', either a directory
168 or a file, instead of loading them from the default search
171 See the <<load,Tracing session configuration loading>> section above.
173 option:-S, option:--sig-parent::
174 Send the `USR1` signal to the parent process to notify readiness.
176 You can also use the option:--daemonize or option:--background option,
177 in which case `lttng-sessiond` ensures the daemon is ready to receive
178 client commands before it exits.
185 option:--extra-kmod-probes='PROBE'[,'PROBE']...::
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.
190 See also the `LTTNG_EXTRA_KMOD_PROBES` environment variable.
192 option:--kmod-probes='PROBE'[,'PROBE']...::
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.
197 See also the `LTTNG_KMOD_PROBES` environment variable.
200 Disable Linux kernel tracing.
205 option:--agent-tcp-port='PORT'::
206 Listen on TCP port 'PORT' for agent application registration
207 instead of a port within the range
208 [{default_agent_tcp_port_range_begin},{nbsp}{default_agent_tcp_port_range_end}]).
210 option:-a 'PATH', option:--apps-sock='PATH'::
211 Set the application Unix socket path to 'PATH'.
213 option:-c 'PATH', option:--client-sock='PATH'::
214 Set the client Unix socket path to 'PATH'.
216 option:--consumerd32-libdir='PATH'::
217 Set the 32-bit consumer daemon library directory to 'PATH'.
219 See also the `LTTNG_CONSUMERD32_LIBDIR` environment variable.
221 option:--consumerd32-path='PATH'::
222 Set the 32-bit consumer daemon binary path to 'PATH'.
224 See also the `LTTNG_CONSUMERD32_BIN` environment variable.
226 option:--consumerd64-libdir='PATH'::
227 Set the 64-bit consumer daemon library directory to 'PATH'.
229 See also the `LTTNG_CONSUMERD64_LIBDIR` environment variable.
231 option:--consumerd64-path='PATH'::
232 Set the 64-bit consumer daemon binary path to 'PATH'.
234 See also the `LTTNG_CONSUMERD32_BIN` environment variable.
236 option:--kconsumerd-cmd-sock='PATH'::
237 Set the command Unix socket path of the Linux kernel consumer daemon
240 option:--kconsumerd-err-sock='PATH'::
241 Set the error Unix socket path of the Linux kernel consumer daemon
244 option:--ustconsumerd32-cmd-sock='PATH'::
245 Set the Unix socket path of the 32-bit consumer daemon command to
248 option:--ustconsumerd64-cmd-sock='PATH'::
249 Set the Unix socket path of the 64-bit consumer daemon command to
252 option:--ustconsumerd32-err-sock='PATH'::
253 Set the Unix socket path of the 32-bit consumer daemon error to
256 option:--ustconsumerd64-err-sock='PATH'::
257 Set the Unix socket path of the 64-bit consumer daemon error to
261 Buffer size of event notifier error counters
262 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
263 option:--event-notifier-error-buffer-size-kernel='SLOTS'::
264 Set the size of the kernel event notifier error counter buffers to
267 option:--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.
271 As of LTTng{nbsp}{lttng_version}, a _slot_ is a 32-bit counter, but this
272 may change in the future.
277 option:-q, option:--quiet::
278 Suppress all messages, including warnings and errors.
280 You may :not: use this option with the option:--verbose and
281 option:--verbose-consumer options.
283 option:-v, option:--verbose::
286 Specify this option up to three times to get more levels of verbosity.
288 You may :not: use this option with the option:--quiet option.
290 option:--verbose-consumer::
291 Increase the verbosity of the consumer daemons which this session
294 You may :not: use this option with the option:--quiet option.
299 include::common-help-option.txt[]
301 option:-V, option:--version::
302 Show version and quit.
319 `LTTNG_ABORT_ON_ERROR`::
320 Set to `1` to abort the process after the first error is
323 `LTTNG_APP_SOCKET_TIMEOUT`::
324 Timeout (in seconds) of the application socket when
325 sending/receiving commands.
327 After this period of time, `lttng-sessiond` unregisters the application.
329 Set to `0` or `-1` to set an infinite timeout.
331 Default: +{default_app_socket_rw_timeout}+.
333 `LTTNG_CONSUMERD32_BIN`::
334 32-bit consumer daemon binary path.
336 The option:--consumerd32-path option overrides this environment
339 `LTTNG_CONSUMERD32_LIBDIR`::
340 32-bit consumer daemon library directory path.
342 The option:--consumerd32-libdir option overrides this environment
345 `LTTNG_CONSUMERD64_BIN`::
346 64-bit consumer daemon binary path.
348 The option:--consumerd64-path option overrides this environment
351 `LTTNG_CONSUMERD64_LIBDIR`::
352 64-bit consumer daemon library directory path.
354 The option:--consumerd64-libdir option overrides this environment
357 `LTTNG_DEBUG_NOCLONE`::
358 Set to `1` to disable the use of man:clone(2)/man:fork(2).
360 Setting this environment variable is considered insecure, but it's
361 required to allow debuggers to work with `lttng-sessiond` on some
364 `LTTNG_EXTRA_KMOD_PROBES`::
365 Extra LTTng kernel probe modules to load.
367 See the option:--extra-kmod-probes option which overrides this
368 environment variable.
370 `LTTNG_KMOD_PROBES`::
371 Exclusive LTTng kernel probe modules to load.
373 See the option:--kmod-probes option which overrides this environment
376 `LTTNG_NETWORK_SOCKET_TIMEOUT`::
377 Socket connection, receive, and send timeout (milliseconds).
379 Set to `0` or `-1` to use the timeout of the operating system (default).
381 `LTTNG_SESSION_CONFIG_XSD_PATH`::
382 Tracing session configuration XML schema definition (XSD) path.
387 `$LTTNG_HOME/.lttng`::
388 Unix user's LTTng runtime and configuration directory.
390 `$LTTNG_HOME/lttng-traces`::
391 Default output directory of LTTng traces in local and snapshot
394 Override this path with the nloption:--output option of the
395 man:lttng-create(1) command.
397 `$LTTNG_HOME/.lttng/sessions/auto`::
398 Directory from which `lttng-sessiond` loads Unix user tracing
399 session configurations when starting.
401 See the <<load,Tracing session configuration loading>> section above to
404 +{system_sessions_auto_dir}+::
405 Directory from which `lttng-sessiond` loads system-wide tracing
406 session configurations when starting.
408 See the <<load,Tracing session configuration loading>> section above to
411 `$LTTNG_HOME/.lttng/lttng.conf`::
412 Unix user's LTTng daemon INI configuration file.
414 See the <<cfg,Daemon configuration>> section above to learn more.
416 +{system_lttng_conf}+::
417 System-wide LTTng daemon INI configuration file.
419 See the <<cfg,Daemon configuration>> section above to learn more.
421 NOTE: `$LTTNG_HOME` defaults to `$HOME`.
424 include::common-footer.txt[]
430 man:lttng-concepts(7)