unix-exec-output-catcher 0.2.4

Library to run executables in a child process and catch STDOUT and STDERR output on UNIX-systems. std::process::Command is probably the better option. Use this source code as educational source how it could be done.
Documentation
Build #2462722 2025-08-31 11:11:16
# rustc version
rustc 1.91.0-nightly (523d3999d 2025-08-30)# docs.rs version
docsrs 0.6.0 (8bbaf878 2025-08-22)# build log
[INFO] running `Command { std: "docker" "create" "-v" "/home/cratesfyi/workspace-builder/builds/unix-exec-output-catcher-0.2.4/target:/opt/rustwide/target:rw,Z" "-v" "/home/cratesfyi/workspace-builder/builds/unix-exec-output-catcher-0.2.4/source:/opt/rustwide/workdir:ro,Z" "-v" "/home/cratesfyi/workspace-builder/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/home/cratesfyi/workspace-builder/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "DOCS_RS=1" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "6442450944" "--cpus" "6" "--user" "1001:1001" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "rustdoc" "--lib" "-Zrustdoc-map" "--config" "build.rustdocflags=[\"--cfg\", \"docsrs\", \"-Z\", \"unstable-options\", \"--emit=invocation-specific\", \"--resource-suffix\", \"-20250830-1.91.0-nightly-523d3999d\", \"--static-root-path\", \"/-/rustdoc.static/\", \"--cap-lints\", \"warn\", \"--extern-html-root-takes-precedence\"]" "--offline" "-Zunstable-options" "--config=doc.extern-map.registries.crates-io=\"https://docs.rs/{pkg_name}/{version}/x86_64-unknown-linux-gnu\"" "-Zrustdoc-scrape-examples" "-j6" "--target" "x86_64-unknown-linux-gnu", kill_on_drop: false }`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] 363f0b6f595a80136ec78ca0b956552ac6ca6742a8b0bc45c5d0429e21a362bb
[INFO] running `Command { std: "docker" "start" "-a" "363f0b6f595a80136ec78ca0b956552ac6ca6742a8b0bc45c5d0429e21a362bb", kill_on_drop: false }`
[INFO] [stderr] warning: Rustdoc did not scrape the following examples because they require dev-dependencies: minimal
[INFO] [stderr]     If you want Rustdoc to scrape these examples, then add `doc-scrape-examples = true`
[INFO] [stderr]     to the [[example]] target configuration of at least one example.
[INFO] [stderr] warning: target filter specified, but no targets matched; this is a no-op
[INFO] [stderr]  Documenting unix-exec-output-catcher v0.2.4 (/opt/rustwide/workdir)
[INFO] [stderr] warning: this URL is not a hyperlink
[INFO] [stderr]   --> src/exec.rs:59:14
[INFO] [stderr]    |
[INFO] [stderr] 59 | ///          https://unix.stackexchange.com/questions/315812/why-does-argv-include-the-program-name
[INFO] [stderr]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: bare URLs are not automatically turned into clickable links
[INFO] [stderr]    = note: `#[warn(rustdoc::bare_urls)]` on by default
[INFO] [stderr] help: use an automatic link instead
[INFO] [stderr]    |
[INFO] [stderr] 59 | ///          <https://unix.stackexchange.com/questions/315812/why-does-argv-include-the-program-name>
[INFO] [stderr]    |              +                                                                                      +
[INFO] [stderr] 
[INFO] [stderr] warning: this URL is not a hyperlink
[INFO] [stderr]   --> src/lib.rs:35:13
[INFO] [stderr]    |
[INFO] [stderr] 35 |     /// See https://man7.org/linux/man-pages/man3/errno.3.html
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: bare URLs are not automatically turned into clickable links
[INFO] [stderr] help: use an automatic link instead
[INFO] [stderr]    |
[INFO] [stderr] 35 |     /// See <https://man7.org/linux/man-pages/man3/errno.3.html>
[INFO] [stderr]    |             +                                                  +
[INFO] [stderr] 
[INFO] [stderr] warning: `unix-exec-output-catcher` (lib doc) generated 2 warnings (run `cargo fix --lib -p unix-exec-output-catcher` to apply 2 suggestions)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.34s
[INFO] [stderr]    Generated /opt/rustwide/target/x86_64-unknown-linux-gnu/doc/unix_exec_output_catcher/index.html
[INFO] running `Command { std: "docker" "inspect" "363f0b6f595a80136ec78ca0b956552ac6ca6742a8b0bc45c5d0429e21a362bb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "363f0b6f595a80136ec78ca0b956552ac6ca6742a8b0bc45c5d0429e21a362bb", kill_on_drop: false }`
[INFO] [stdout] 363f0b6f595a80136ec78ca0b956552ac6ca6742a8b0bc45c5d0429e21a362bb