Exit Code & Signal Reference
Decode any Unix exit code (0–255) including the 128+N signal rule (137 = SIGKILL, 139 = SIGSEGV, 143 = SIGTERM), with a complete bidirectional signal table (number ↔ name ↔ default action ↔ catchable), sysexits.h reference (EX_USAGE 64 … EX_CONFIG 78), reserved-range guidance, bash scripting snippets ($?, trap, set -e), Docker OOM 137 callout, and search by code OR signal name. 100% client-side — pure lookup, runs offline, no ads.
About Exit Code & Signal Reference
Decode any Unix exit code (0–255) including the 128+N signal rule (137 = SIGKILL, 139 = SIGSEGV, 143 = SIGTERM), with a complete bidirectional signal table (number ↔ name ↔ default action ↔ catchable), sysexits.h reference (EX_USAGE 64 … EX_CONFIG 78), reserved-range guidance, bash scripting snippets ($?, trap, set -e), Docker OOM 137 callout, and search by code OR signal name. 100% client-side — pure lookup, runs offline, no ads. Everything runs locally in your browser — your data never leaves your device.
How to use
- Enter your input in the tool above.
- Adjust any options to your preference.
- Use the Copy or Download buttons to save the result.
- Everything happens locally — your data never leaves your browser.
FAQ
What does exit code 137 mean?
Exit code 137 = 128 + 9 = SIGKILL — the process was forcibly killed. In Docker, 137 almost always means the container hit its memory limit and the kernel OOM-killer sent SIGKILL. Outside Docker, you may have run `kill -9 <pid>`. SIGKILL cannot be caught, blocked, or ignored, so the process is terminated immediately by the kernel.
How does the 128+N signal rule work?
When a Unix process is terminated by a signal `N`, the parent shell reports the exit status as `128 + N`. So 130 = 128 + 2 = SIGINT (Ctrl+C), 139 = 128 + 11 = SIGSEGV (segfault), 143 = 128 + 15 = SIGTERM. Note: this rule only applies to signal-terminated processes — your own `exit 137` does NOT mean SIGKILL, it just exits with the integer 137.
What are the reserved bash exit codes I should not use?
Avoid 0 (success), 1 (general error), 2 (misuse of builtins), 126 (not executable), 127 (command not found), 128 (invalid exit argument), 128+N (signal termination, N=1..31), and 255 (out-of-range). The sysexits.h range 64–78 is also reserved by convention (EX_USAGE … EX_CONFIG). For your own scripts, pick codes in 3–63 or 79–125 to avoid collisions.
Why does exit 256 still return 0?
Unix exit codes are a single unsigned byte (0–255). Any integer passed to `exit` is taken modulo 256: `exit 256` becomes 0, `exit 257` becomes 1, `exit -1` becomes 255. This is why 255 is often shown as 'out-of-range' — it is what you get from any negative or >255 input. The tool explains this wrap-around for every code above 128.
What extra features does this tool have compared to scattered blog posts?
(1) Decode any code 0–255 with the 128+N signal rule auto-applied. (2) Complete signal table — number, name, default action, catchable/ignorable flags. (3) Reverse lookup by signal name (SIGKILL → 9) or by number (9 → SIGKILL). (4) sysexits.h reference (EX_USAGE 64 … EX_CONFIG 78) with usage notes. (5) Reserved-range guide + safe custom-code suggestion. (6) Bash scripting snippets ($?, trap, set -e, set -o pipefail, command || exit). (7) Docker OOM 137 callout. (8) Day-of-week vs day-of-month-style confusions (SIGINT 130 vs SIGTERM 143 vs SIGKILL 137). (9) Code-wrap explanation (mod 256). (10) Searchable both ways (code → meaning, signal name ↔ number). (11) Shareable deep-link to any code or signal. (12) Recent history (localStorage, last 20). 100% client-side — no ads, no tracking.
Related tools
.bashrc / .zshrc Alias & Config Manager
Build shell aliases, functions, exports, and PATH edits in a visual editor, then export a clean, commented .aliases file sourced from both .bashrc and .zshrc — with shadowing detection against shell builtins and common CLI tools, function suggestions when args are needed, starter packs (git, docker, kubectl, navigation, safety, ls, dev, devops, data science), import of existing rc files, dedupe, history (localStorage), and shareable URL. 100% client-side.
Add / Subtract Date Calculator
Add or subtract years, months, weeks, days, hours, minutes and seconds from a starting date/time. Calendar-day or business-day mode with custom weekend + holiday list. Month-end policy toggle (clamp to last day vs overflow). Repeat/series mode (e.g. every 2 weeks x 10) with CSV export. Shareable URL. 100% client-side.
Age Calculator
Calculate exact age from a birth date in calendar years/months/days (no negative-day bugs) plus totals in months/weeks/days/hours/minutes/seconds. Next-birthday countdown with weekday. Feb-29 birthday policy toggle. Milestones (1,000 days, 10,000 days, 1 billion seconds). Zodiac sign + Chinese zodiac. Age gap comparison. Shareable URL. 100% client-side.