Environment variables
Tuning and diagnostics, read by both front ends.
| Variable | Default | Effect |
|---|---|---|
PROOT_THREADS | 4 | Supervisor threads answering notifications. Four is the sweet spot measured on a 32-core host; more threads wake colder cores and get slower. |
PROOT_SPIN_US | 200 | Microseconds a supervisor thread spins for the next request before sleeping. The budget adapts: a request found while spinning restores it, each wait that had to sleep halves it, so an idle application costs nothing. |
PROOT_VERBOSE | 0 | Same as -v; the only way to get diagnostics in bwrap mode, which has no such flag. 1 errors and fatal signals, 2 every translation, 3 every ptrace stop. |
PROOT_NO_PTRACE | unset | 1 runs without the ptrace tier even where ptrace works, the mode taken automatically where a seccomp profile filters the ptrace syscall. 0 is the same as unset. |
PROOT_USERNS | unset | 1 puts the guest in a user namespace of its own even where it is not needed, the mode taken automatically where kernel.yama.ptrace_scope is 2. 0 never does, so such a host gets the error instead. |
PROOT_GUEST_STUB | unset | The guest-stub mode is the fallback where neither ptrace nor a user namespace reaches the guest (a default Docker or Kubernetes profile at Yama scope 2). 0 rules it out, so such a host gets the error instead; force takes it anywhere. x86_64 and aarch64 hosts, for their 64-bit and 32-bit programs. |
PROOT_EXEC_DEBUG | unset | Print every rewritten execve with the loader and argv it was given. |
PROOT_NO_PATH_CACHE | unset | Disable the directory cache of the path walk, for an A/B comparison. |
PROOT_BWRAP_KEEP | unset | Keep the private root bwrap mode materializes instead of removing it on exit. |
PROOT_DONT_POLLUTE_ROOTFS | unset | Do not create mount points for bindings whose guest path does not exist, as in PRoot. Such a binding is then still found by name but missing from its directory's listing. |
PROOT_NEST | unset | 0 stops programs named proot, proot-next or bwrap from being served as nested launches; an exec of proot-next's own binary always is. |
Diagnostics go to stderr. Under Steam, that is the srt-logger and ends up
in ~/.local/share/Steam/logs/webhelper-linux.txt and the game's log.