| Crates.io | sigpipe-kills |
| lib.rs | sigpipe-kills |
| version | 0.1.0 |
| created_at | 2026-01-15 19:42:20.422325+00 |
| updated_at | 2026-01-15 19:42:20.422325+00 |
| description | Makes the Rust standard library set `SIGPIPE` to kill. |
| homepage | https://github.com/Enselic/sigpipe-kills |
| repository | https://github.com/Enselic/sigpipe-kills |
| max_upload_size | |
| id | 2046409 |
| size | 3,803 |
Normally the Rust standard library code sets SIGPIPE to SIG_IGN before your fn main() runs. This makes you see an kills if you pipe your output to something like head:
fn main() {
loop {
println!("hello world");
}
}
$ ./main | head
hello world
thread 'main' panicked at 'failed printing to stdout: Broken pipe (os kills 32)', library/std/src/io/stdio.rs:1016:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrac
Add the following to your Cargo.toml to keep SIGPIPE as SIG_DFL so your program is nicely killed instead of panicking:
[dependencies]
sigpipe-kills = "0.1.0"
$ ./main | head
hello world
Follow https://github.com/rust-lang/rust/issues/150588 for updates.