diff --git a/bin/launch-client.md b/bin/launch-client.md index f4566461df89f85d78135679478de4eb55981a93..4aac80f3c2452593c0a9e0a7a5f9a36ae68eccda 100644 --- a/bin/launch-client.md +++ b/bin/launch-client.md @@ -55,232 +55,331 @@ This uses **$SHELL** if available in the container, falling back to # OPTIONS +<dl> +<dt> + **--socket** *PATH*, **--socket** *@ABSTRACT* -: Connect to the given `AF_UNIX` socket, which can either be an - absolute path, or `@` followed by an arbitrary string. - An absolute path indicates a filesystem-based socket, which is - associated with the filesystem and can be shared between filesystem - namespaces by bind-mounting. - `@` indicates an an abstract socket, which is associated with a - network namespace, is shared between all containers that are in - the same network namespace, and cannot be shared across network - namespace boundaries. - This option is deprecated: using a bus name on the well-known D-Bus - session bus is preferred. + +</dt><dd> + +Connect to the given `AF_UNIX` socket, which can either be an +absolute path, or `@` followed by an arbitrary string. +An absolute path indicates a filesystem-based socket, which is +associated with the filesystem and can be shared between filesystem +namespaces by bind-mounting. +`@` indicates an an abstract socket, which is associated with a +network namespace, is shared between all containers that are in +the same network namespace, and cannot be shared across network +namespace boundaries. +This option is deprecated: using a bus name on the well-known D-Bus +session bus is preferred. + +</dd> +<dt> **--dbus-address** *ADDRESS* -: The same as **--socket**, but the socket is specified in the form - of a D-Bus address. - This option is deprecated: using a bus name on the well-known D-Bus - session bus is preferred. + +</dt><dd> + +The same as **--socket**, but the socket is specified in the form +of a D-Bus address. +This option is deprecated: using a bus name on the well-known D-Bus +session bus is preferred. + +</dd> +<dt> **--alongside-steam** -: Attempt to launch the *COMMAND* on behalf of a Steam app or game - that is running inside a Steam Linux Runtime container, so that - the *COMMAND* is run outside the container in approximately the - same execution environment as the script that launches the Steam client. - The Steam Runtime 1 'scout' library stack that is - used to run major components of the Steam client will - usually **not** be present in the **LD_LIBRARY_PATH** for commands - run like this. - - This is currently equivalent to - **--bus-name=**_$SRT_LAUNCHER_SERVICE_ALONGSIDE_STEAM_ - (if that variable is set), followed by - **--bus-name=com.steampowered.PressureVessel.LaunchAlongsideSteam** - (unconditionally) and - **--bus-name=org.freedesktop.portal.Flatpak** (if running inside the - Flatpak per-app container for the unofficial Steam Flatpak app). - It can be combined with other options that select a bus name: - in particular it is valid to use - **--alongside-steam --host** - to run a command in the context of the Steam client if possible or - on the host system otherwise, or - **--host --alongside-steam** - to use the opposite fallback sequence. - - Unlike **--host**, if the Steam client was run as a Flatpak or Snap - application, the *COMMAND* will be run as part of that same Flatpak - or Snap application, but possibly in a Flatpak subsandbox environment. - - The *COMMAND* will run in an unspecified execution environment which - will frequently change between different host operating systems and - over time, so this should only be used to run diagnostic commands - and similar things that are not part of the critical path for a game - to be run successfully. - Executables which are intended to be run like this should be compiled - against a glibc version that is as old as possible, and should - either use a relative **DT_RPATH** or **DT_RUNPATH** to find bundled - dependencies relative to the special token **${ORIGIN}**, or use - **dlopen**(3) to tolerate dependencies not being loaded successfully. - - Official binary releases of the **pressure-vessel** tools are a good - example of what is required to run successfully on an arbitrary host - system: they are compiled in the Steam Runtime 1 'scout' - environment, all required dependencies except for glibc are bundled - with the pressure-vessel tools and loaded from - **${ORIGIN}/../lib/x86_64-linux-gnu** using a **DT_RPATH**, and the - optional **sd-journal**(3) library is loaded using **dlopen**(3). - - As currently implemented, this feature requires a working D-Bus - session bus, the same as for **--bus-name**. + +</dt><dd> + +Attempt to launch the *COMMAND* on behalf of a Steam app or game +that is running inside a Steam Linux Runtime container, so that +the *COMMAND* is run outside the container in approximately the +same execution environment as the script that launches the Steam client. +The Steam Runtime 1 'scout' library stack that is +used to run major components of the Steam client will +usually **not** be present in the **LD_LIBRARY_PATH** for commands +run like this. + +This is currently equivalent to +**--bus-name=**_$SRT_LAUNCHER_SERVICE_ALONGSIDE_STEAM_ +(if that variable is set), followed by +**--bus-name=com.steampowered.PressureVessel.LaunchAlongsideSteam** +(unconditionally) and +**--bus-name=org.freedesktop.portal.Flatpak** (if running inside the +Flatpak per-app container for the unofficial Steam Flatpak app). +It can be combined with other options that select a bus name: +in particular it is valid to use +**--alongside-steam --host** +to run a command in the context of the Steam client if possible or +on the host system otherwise, or +**--host --alongside-steam** +to use the opposite fallback sequence. + +Unlike **--host**, if the Steam client was run as a Flatpak or Snap +application, the *COMMAND* will be run as part of that same Flatpak +or Snap application, but possibly in a Flatpak subsandbox environment. + +The *COMMAND* will run in an unspecified execution environment which +will frequently change between different host operating systems and +over time, so this should only be used to run diagnostic commands +and similar things that are not part of the critical path for a game +to be run successfully. +Executables which are intended to be run like this should be compiled +against a glibc version that is as old as possible, and should +either use a relative **DT_RPATH** or **DT_RUNPATH** to find bundled +dependencies relative to the special token **${ORIGIN}**, or use +**dlopen**(3) to tolerate dependencies not being loaded successfully. + +Official binary releases of the **pressure-vessel** tools are a good +example of what is required to run successfully on an arbitrary host +system: they are compiled in the Steam Runtime 1 'scout' +environment, all required dependencies except for glibc are bundled +with the pressure-vessel tools and loaded from +**${ORIGIN}/../lib/x86_64-linux-gnu** using a **DT_RPATH**, and the +optional **sd-journal**(3) library is loaded using **dlopen**(3). + +As currently implemented, this feature requires a working D-Bus +session bus, the same as for **--bus-name**. + +</dd> +<dt> **--bus-name** *NAME* -: Connect to the well-known D-Bus session bus and send commands to - the given *NAME*, which is normally assumed to be owned by - **steam-runtime-launcher-service**. - - If used more than once, each *NAME* is tried in sequence and the - first that is owned on the session bus will be used. - - As a special case, if the *NAME* is - **org.freedesktop.Flatpak**, then it is assumed to be - owned by the **flatpak-session-helper** per-user service, and the - *COMMAND* is launched on the host system, similar to the - **--host** option of **flatpak-spawn**(1). - The **--terminate** option is not allowed in this mode. - - As another special case, if the *NAME* is - **org.freedesktop.portal.Flatpak**, then it is assumed to be - owned by the **flatpak-portal** per-user service, and the - *COMMAND* is launched in a Flatpak sub-sandbox, similar to - **flatpak-spawn**(1) without the **--host** option. - Most options that alter how the sub-sandbox is created, such as - **--sandbox-flag**, are not currently supported. - As with **org.freedesktop.Flatpak**, the - **--terminate** option is not allowed in this mode. - - This option requires a working D-Bus session bus, which is typically - provided by the **dbus.service** per-user service on systemd systems, - or by **dbus-launch**(1) or **dbus-run-session**(1) on non-systemd - systems. + +</dt><dd> + +Connect to the well-known D-Bus session bus and send commands to +the given *NAME*, which is normally assumed to be owned by +**steam-runtime-launcher-service**. + +If used more than once, each *NAME* is tried in sequence and the +first that is owned on the session bus will be used. + +As a special case, if the *NAME* is +**org.freedesktop.Flatpak**, then it is assumed to be +owned by the **flatpak-session-helper** per-user service, and the +*COMMAND* is launched on the host system, similar to the +**--host** option of **flatpak-spawn**(1). +The **--terminate** option is not allowed in this mode. + +As another special case, if the *NAME* is +**org.freedesktop.portal.Flatpak**, then it is assumed to be +owned by the **flatpak-portal** per-user service, and the +*COMMAND* is launched in a Flatpak sub-sandbox, similar to +**flatpak-spawn**(1) without the **--host** option. +Most options that alter how the sub-sandbox is created, such as +**--sandbox-flag**, are not currently supported. +As with **org.freedesktop.Flatpak**, the +**--terminate** option is not allowed in this mode. + +This option requires a working D-Bus session bus, which is typically +provided by the **dbus.service** per-user service on systemd systems, +or by **dbus-launch**(1) or **dbus-run-session**(1) on non-systemd +systems. + +</dd> +<dt> **--host** -: Attempt to launch the *COMMAND* on the host system, similar to the - **--host** option of **flatpak-spawn**(1). - This is currently equivalent to - **--bus-name=org.freedesktop.Flatpak**, and can be combined with - other options that select a bus name, such as **--alongside-steam**. - Similar to **--alongside-steam**, the *COMMAND* will run in an unspecified - execution environment which will frequently change between different - host operating systems and over time. - See the description of **--alongside-steam** for more details on how to - compile suitable executables. +</dt><dd> - As currently implemented, this feature requires a working D-Bus - session bus, the same as for **--bus-name**. +Attempt to launch the *COMMAND* on the host system, similar to the +**--host** option of **flatpak-spawn**(1). +This is currently equivalent to +**--bus-name=org.freedesktop.Flatpak**, and can be combined with +other options that select a bus name, such as **--alongside-steam**. + +Similar to **--alongside-steam**, the *COMMAND* will run in an unspecified +execution environment which will frequently change between different +host operating systems and over time. +See the description of **--alongside-steam** for more details on how to +compile suitable executables. + +As currently implemented, this feature requires a working D-Bus +session bus, the same as for **--bus-name**. + +</dd> +<dt> **--inside-app** *ID* -: Attempt to launch the *COMMAND* inside a pressure-vessel container - that is currently running Steam app ID *ID*. - *ID* may be **0**, for containers that are not running a Steam app. - This is currently equivalent to - **--bus-name=com.steampowered.App**_ID_, and can be combined with - other options that select a bus name, although this is unlikely to be - practically useful. - As currently implemented, this feature requires a working D-Bus - session bus, the same as for **--bus-name**. +</dt><dd> + +Attempt to launch the *COMMAND* inside a pressure-vessel container +that is currently running Steam app ID *ID*. +*ID* may be **0**, for containers that are not running a Steam app. +This is currently equivalent to +**--bus-name=com.steampowered.App**_ID_, and can be combined with +other options that select a bus name, although this is unlikely to be +practically useful. + +As currently implemented, this feature requires a working D-Bus +session bus, the same as for **--bus-name**. + +</dd> +<dt> **--app-path** *PATH*, **--app-path=** -: When creating a Flatpak subsandbox, mount *PATH* as the `/app` in - the new subsandbox. If *PATH* is specified as the empty string, - place an empty directory at `/app`. - This option is only valid when used with - **--bus-name=org.freedesktop.portal.Flatpak**, and requires - Flatpak 1.12 or later. +</dt><dd> + +When creating a Flatpak subsandbox, mount *PATH* as the `/app` in +the new subsandbox. If *PATH* is specified as the empty string, +place an empty directory at `/app`. + +This option is only valid when used with +**--bus-name=org.freedesktop.portal.Flatpak**, and requires +Flatpak 1.12 or later. + +</dd> +<dt> **--clear-env** -: Run the *COMMAND* in an empty environment, apart from any environment - variables set by **--env** and similar options, and environment - variables such as `PWD` that are set programmatically (see - **ENVIRONMENT** section, below). - If this option is not used, instead it inherits environment variables - from **steam-runtime-launcher-service**, with **--env** and - similar options overriding or unsetting individual variables. + +</dt><dd> + +Run the *COMMAND* in an empty environment, apart from any environment +variables set by **--env** and similar options, and environment +variables such as `PWD` that are set programmatically (see +**ENVIRONMENT** section, below). +If this option is not used, instead it inherits environment variables +from **steam-runtime-launcher-service**, with **--env** and +similar options overriding or unsetting individual variables. + +</dd> +<dt> **-c** *SHELL_COMMAND*, **--shell-command** *SHELL_COMMAND* -: Run the *SHELL_COMMAND* using **sh**(1). - If additional arguments are given, the first is used to set **$0** - in the resulting shell, and the remaining arguments are the - shell's positional parameters **$@**. - This is a shortcut for using - **-- sh -c** *SHELL_COMMAND* [*$0* [*ARGUMENT*...]] - as the command and arguments. + +</dt><dd> + +Run the *SHELL_COMMAND* using **sh**(1). +If additional arguments are given, the first is used to set **$0** +in the resulting shell, and the remaining arguments are the +shell's positional parameters **$@**. +This is a shortcut for using +**-- sh -c** *SHELL_COMMAND* [*$0* [*ARGUMENT*...]] +as the command and arguments. + +</dd> +<dt> **--directory** *DIR* -: Arrange for the *COMMAND* to run with *DIR* as its current working - directory. - An empty string (typically written as **--directory=**) results in - inheriting the current working directory from the service that - will run the *COMMAND*. +</dt><dd> + +Arrange for the *COMMAND* to run with *DIR* as its current working +directory. - When using **--alongside-steam**, **--host**, - **--bus-name=org.freedesktop.portal.Flatpak** or - **--bus-name=org.freedesktop.Flatpak**, - the default is to attempt to use the same working directory from - which **steam-runtime-launch-client**(1) was run, similar to the - effect of using **--directory="$(pwd)"** in a shell. - This matches the behaviour of **flatpak-spawn**(1). +An empty string (typically written as **--directory=**) results in +inheriting the current working directory from the service that +will run the *COMMAND*. - Otherwise, the default is to inherit the current working directory - from the service, equivalent to **--directory=**. +When using **--alongside-steam**, **--host**, +**--bus-name=org.freedesktop.portal.Flatpak** or +**--bus-name=org.freedesktop.Flatpak**, +the default is to attempt to use the same working directory from +which **steam-runtime-launch-client**(1) was run, similar to the +effect of using **--directory="$(pwd)"** in a shell. +This matches the behaviour of **flatpak-spawn**(1). + +Otherwise, the default is to inherit the current working directory +from the service, equivalent to **--directory=**. + +</dd> +<dt> **--forward-fd** *FD* -: Arrange for the *COMMAND* to receive file descriptor number *FD* - from the current execution environment. - File descriptors 0, 1 and 2 - (standard input, standard output and standard error) are always - forwarded. - If *FD* is a terminal, **steam-runtime-launch-client** will allocate - a pseudo-terminal (pty) and pass the terminal end of the pty to the - *COMMAND*, forwarding input and output between *FD* and the ptmx - end of the pty. +</dt><dd> + +Arrange for the *COMMAND* to receive file descriptor number *FD* +from the current execution environment. +File descriptors 0, 1 and 2 +(standard input, standard output and standard error) are always +forwarded. + +If *FD* is a terminal, **steam-runtime-launch-client** will allocate +a pseudo-terminal (pty) and pass the terminal end of the pty to the +*COMMAND*, forwarding input and output between *FD* and the ptmx +end of the pty. + +</dd> +<dt> **--list** -: Instead of running a *COMMAND*, list the services that - **steam-runtime-launch-client** could connect to. - Each line of output is an option that could be passed to - **steam-runtime-launch-client** to select a service. - This uses a heuristic to identify possible targets from their bus - names, so it is possible that not all possible targets are listed. - In the current implementation, it lists bus names starting with - **com.steampowered.App**, plus - **com.steampowered.PressureVessel.LaunchAlongsideSteam** and Flatpak - if available. - - As currently implemented, this feature requires a working D-Bus - session bus, the same as for **--bus-name**. + +</dt><dd> + +Instead of running a *COMMAND*, list the services that +**steam-runtime-launch-client** could connect to. +Each line of output is an option that could be passed to +**steam-runtime-launch-client** to select a service. +This uses a heuristic to identify possible targets from their bus +names, so it is possible that not all possible targets are listed. +In the current implementation, it lists bus names starting with +**com.steampowered.App**, plus +**com.steampowered.PressureVessel.LaunchAlongsideSteam** and Flatpak +if available. + +As currently implemented, this feature requires a working D-Bus +session bus, the same as for **--bus-name**. + +</dd> +<dt> **--share-pids** -: If used with **--bus-name=org.freedesktop.portal.Flatpak**, use the - same process ID namespace for the new subsandbox as for the calling - process. This requires Flatpak 1.10 or later, running on a host - operating system where **bwrap**(1) is not and does not need to be - setuid root. - When communicating with a different API, this option is ignored. +</dt><dd> + +If used with **--bus-name=org.freedesktop.portal.Flatpak**, use the +same process ID namespace for the new subsandbox as for the calling +process. This requires Flatpak 1.10 or later, running on a host +operating system where **bwrap**(1) is not and does not need to be +setuid root. + +When communicating with a different API, this option is ignored. + +</dd> +<dt> **--terminate** -: Terminate the **steam-runtime-launcher-service** server after the - *COMMAND* finishes running. - If no *COMMAND* is specified, terminate the server immediately. - This option is not available when communicating with Flatpak. + +</dt><dd> + +Terminate the **steam-runtime-launcher-service** server after the +*COMMAND* finishes running. +If no *COMMAND* is specified, terminate the server immediately. +This option is not available when communicating with Flatpak. + +</dd> +<dt> **--usr-path** *PATH* -: When creating a Flatpak subsandbox, mount *PATH* as the `/usr` in - the new subsandbox. - This option is only valid when used with - **--bus-name=org.freedesktop.portal.Flatpak**, and requires - Flatpak 1.12 or later. +</dt><dd> + +When creating a Flatpak subsandbox, mount *PATH* as the `/usr` in +the new subsandbox. + +This option is only valid when used with +**--bus-name=org.freedesktop.portal.Flatpak**, and requires +Flatpak 1.12 or later. + +</dd> +<dt> **--verbose** -: Be more verbose. + +</dt><dd> + +Be more verbose. + +</dd> +</dl> # ENVIRONMENT OPTIONS @@ -297,49 +396,94 @@ the **TERM** environment variable is passed through by default, as if This behaviour can be overridden by other options that affect **TERM**, or disabled with **--inherit-env=TERM**. +<dl> +<dt> + **--env** _VAR=VALUE_ -: Set environment variable _VAR_ to _VALUE_. - This is mostly equivalent to using - **env** _VAR=VALUE_ *COMMAND* *ARGUMENTS...* - as the command. + +</dt><dd> + +Set environment variable _VAR_ to _VALUE_. +This is mostly equivalent to using +**env** _VAR=VALUE_ *COMMAND* *ARGUMENTS...* +as the command. + +</dd> +<dt> **--env-fd** _FD_ -: Parse zero-terminated environment variables from _FD_, and set each - one as if via **--env**. - The format of _FD_ is the same as the output of `$(env -0)` or the - pseudo-file `/proc/PID/environ`. + +</dt><dd> + +Parse zero-terminated environment variables from _FD_, and set each +one as if via **--env**. +The format of _FD_ is the same as the output of `$(env -0)` or the +pseudo-file `/proc/PID/environ`. + +</dd> +<dt> **--inherit-env** *VAR* -: Undo the effect of a previous **--env**, **--unset-env**, **--pass-env** - or similar, returning to the default behaviour of inheriting *VAR* - from the execution environment of the service that is used to run - the *COMMAND* (unless **--clear-env** was used). + +</dt><dd> + +Undo the effect of a previous **--env**, **--unset-env**, **--pass-env** +or similar, returning to the default behaviour of inheriting *VAR* +from the execution environment of the service that is used to run +the *COMMAND* (unless **--clear-env** was used). + +</dd> +<dt> **--inherit-env-matching** *WILDCARD* -: Do the same as for **--inherit-env** for any environment variable - whose name matches *WILDCARD*. - If this command is run from a shell, the wildcard will usually need - to be quoted, for example **--inherit-env-matching="FOO*"**. + +</dt><dd> + +Do the same as for **--inherit-env** for any environment variable +whose name matches *WILDCARD*. +If this command is run from a shell, the wildcard will usually need +to be quoted, for example **--inherit-env-matching="FOO*"**. + +</dd> +<dt> **--pass-env** *VAR* -: If the environment variable *VAR* is set, pass its current value - into the container as if via **--env**. Otherwise, unset it as if - via **--unset-env**. + +</dt><dd> + +If the environment variable *VAR* is set, pass its current value +into the container as if via **--env**. Otherwise, unset it as if +via **--unset-env**. + +</dd> +<dt> **--pass-env-matching** *WILDCARD* -: For each environment variable that is set and has a name matching - the **fnmatch**(3) pattern *WILDCARD*, pass its current value - into the container as if via **--env**. - For example, **--pass-env-matching=Steam*** copies Steam-related - environment variables. - If this command is run from a shell, the wildcard will usually need - to be quoted, for example **--pass-env-matching="Steam*"**. + +</dt><dd> + +For each environment variable that is set and has a name matching +the **fnmatch**(3) pattern *WILDCARD*, pass its current value +into the container as if via **--env**. +For example, **--pass-env-matching=Steam*** copies Steam-related +environment variables. +If this command is run from a shell, the wildcard will usually need +to be quoted, for example **--pass-env-matching="Steam*"**. + +</dd> +<dt> **--unset-env** *VAR* -: Unset *VAR* when running the command. - This is mostly equivalent to using - **env -u** *VAR* *COMMAND* *ARGUMENTS...* - as the command. + +</dt><dd> + +Unset *VAR* when running the command. +This is mostly equivalent to using +**env -u** *VAR* *COMMAND* *ARGUMENTS...* +as the command. + +</dd> +</dl> # ENVIRONMENT @@ -348,53 +492,122 @@ or disabled with **--inherit-env=TERM**. Some variables will be set programmatically by **steam-runtime-launcher-service** when the *COMMAND* is launched: +<dl> +<dt> + `MAINPID` -: If **steam-runtime-launcher-service**(1) was run as a wrapper around a - command (for example as - **steam-runtime-launcher-service --bus-name=... -- my-game**), - and the initial process of the wrapped command is still running, - then this variable is set to its process ID (for example, the process - ID of **my-game**). Otherwise, this variable is cleared. - The environment options shown above will override this behaviour. + +</dt><dd> + +If **steam-runtime-launcher-service**(1) was run as a wrapper around a +command (for example as +**steam-runtime-launcher-service --bus-name=... -- my-game**), +and the initial process of the wrapped command is still running, +then this variable is set to its process ID (for example, the process +ID of **my-game**). Otherwise, this variable is cleared. +The environment options shown above will override this behaviour. + +</dd> +<dt> `PWD` -: **steam-runtime-launcher-service**(1) sets this to the current working - directory (as specified by **--directory**, or inherited from the - launcher) for each command executed inside the container, - overriding the environment options shown above. + +</dt><dd> + +**steam-runtime-launcher-service**(1) sets this to the current working +directory (as specified by **--directory**, or inherited from the +launcher) for each command executed inside the container, +overriding the environment options shown above. + +</dd> +</dl> ## Variables read by steam-runtime-launch-client Some variables affect the behaviour of **steam-runtime-launch-client**: +<dl> +<dt> + `DBUS_SESSION_BUS_ADDRESS` -: Used to contact the well-known D-Bus session bus. + +</dt><dd> + +Used to contact the well-known D-Bus session bus. + +</dd> +<dt> `PRESSURE_VESSEL_LOG_INFO` (boolean) -: If set to 1, same as `SRT_LOG=info` + +</dt><dd> + +If set to 1, same as `SRT_LOG=info` + +</dd> +<dt> + +</dd> +<dt> `PRESSURE_VESSEL_LOG_WITH_TIMESTAMP` (boolean) -: If set to 1, same as `SRT_LOG=timestamp` + +</dt><dd> + +If set to 1, same as `SRT_LOG=timestamp` + +</dd> +<dt> `SHELL` -: If set to a non-empty value, it is used as the default shell when - no *COMMAND* is provided. + +</dt><dd> + +If set to a non-empty value, it is used as the default shell when +no *COMMAND* is provided. + +</dd> +<dt> `SRT_LAUNCHER_SERVICE_ALONGSIDE_STEAM` -: If set, it is assumed to be the well-known or unique bus name of a - **steam-runtime-launcher-service**(1) outside the Steam Linux Runtime - container, used when implementing **--alongside-steam**. + +</dt><dd> + +If set, it is assumed to be the well-known or unique bus name of a +**steam-runtime-launcher-service**(1) outside the Steam Linux Runtime +container, used when implementing **--alongside-steam**. + +</dd> +<dt> `SRT_LOG` -: A sequence of tokens separated by colons, spaces or commas - affecting how output is recorded. See source code for details. + +</dt><dd> + +A sequence of tokens separated by colons, spaces or commas +affecting how output is recorded. See source code for details. + +</dd> +<dt> `TERM` -: If standard input, standard output or standard error is a terminal, - then this environment variable is passed to the *COMMAND* by default. + +</dt><dd> + +If standard input, standard output or standard error is a terminal, +then this environment variable is passed to the *COMMAND* by default. + +</dd> +<dt> `XDG_RUNTIME_DIR` -: Used to contact the well-known D-Bus session bus. + +</dt><dd> + +Used to contact the well-known D-Bus session bus. + +</dd> +</dl> # OUTPUT @@ -408,37 +621,82 @@ on standard error. The exit status is similar to **env**(1): +<dl> +<dt> + 0 -: The *COMMAND* exited successfully with status 0, - or there was no *COMMAND* and **--terminate** succeeded. + +</dt><dd> + +The *COMMAND* exited successfully with status 0, +or there was no *COMMAND* and **--terminate** succeeded. + +</dd> +<dt> 125 -: Invalid arguments were given, or **steam-runtime-launch-client** failed - to start. + +</dt><dd> + +Invalid arguments were given, or **steam-runtime-launch-client** failed +to start. + +</dd> +<dt> 126 -: Reserved to indicate inability to launch the *COMMAND*. - This is not currently distinguished from exit status 125. + +</dt><dd> + +Reserved to indicate inability to launch the *COMMAND*. +This is not currently distinguished from exit status 125. + +</dd> +<dt> 127 -: Reserved to indicate that the *COMMAND* was not found. - This is not currently distinguished from exit status 125. + +</dt><dd> + +Reserved to indicate that the *COMMAND* was not found. +This is not currently distinguished from exit status 125. + +</dd> +<dt> 255 -: The *COMMAND* was launched, but its exit status could not be - determined. This happens if the wait-status was neither - normal exit nor termination by a signal. It also happens if - **steam-runtime-launch-client** was disconnected from the D-Bus - session bus or the **--socket** before the exit status could be - determined. + +</dt><dd> + +The *COMMAND* was launched, but its exit status could not be +determined. This happens if the wait-status was neither +normal exit nor termination by a signal. It also happens if +**steam-runtime-launch-client** was disconnected from the D-Bus +session bus or the **--socket** before the exit status could be +determined. + +</dd> +<dt> Any value -: The *COMMAND* exited unsuccessfully with the status indicated. + +</dt><dd> + +The *COMMAND* exited unsuccessfully with the status indicated. + +</dd> +<dt> 128 + *n* -: The *COMMAND* was killed by signal *n*. - (This is the same encoding used by **bash**(1), **bwrap**(1) and - **env**(1).) + +</dt><dd> + +The *COMMAND* was killed by signal *n*. +(This is the same encoding used by **bash**(1), **bwrap**(1) and +**env**(1).) + +</dd> +</dl> # EXAMPLES