3 ms·
errno codes aren't used in the exit codes of command-line tools; they're used in programmatic APIs like syscalls and libc functions. There's no standard for pr
by JoshTriplett 5y ago
errno codes aren't used in the exit codes of command-line tools; they're used in programmatic APIs like syscalls and libc functions.
There's no standard for process exit codes, other than "zero for success, non-zero for error".
- zzo38computer 5y agoSome programs do follow a specification (sysexits.h) where numbers 64 and higher are used for common uses, such as usage error, software error, file format error, etc.
- ithkuil 5y agoAldo when the oomkiller process kills another process it causes it to exit with a well known exit code: 137
- saagarjha 5y agoThat’s just 128+SIGKILL (9).
- teddyh 5y agoThat’s not an exit code; that is a fake exit code which your shell made up, since your shell has no other way to tell you that a process did not exit at all, but was killed by a signal (9, i.e. SIGKILL). This is, again, not an actual exit code, since the process did not actually exit. See here for why you can’t use an exit status of 128+signal to fake a “killed by signal” state, either: https://www.cons.org/cracauer/sigint.html https://www.cons.org/cracauer/sigint.html
- teddyh 5y agoThat is not entirely true. There is sysexits.h, which tried to standardize some exit codes (originally meant for mail filters). It is used by, for instance, argp_parse(). https://sourceware.org/git/?p=glibc.git;a=blob;f=misc/sysexits.h https://sourceware.org/git/?p=glibc.git;a=blob;f=misc/sysexi...