[
  {
    "code": 0,
    "name": "Success",
    "description": "The program completed successfully without errors.",
    "source": "posix"
  },
  {
    "code": 1,
    "name": "General Error",
    "description": "Catchall for general errors; miscellaneous errors such as 'divide by zero' or other impermissible operations.",
    "source": "bash"
  },
  {
    "code": 2,
    "name": "Misuse of Shell Builtins",
    "description": "Misuse of shell builtins (according to Bash documentation); missing keyword or command, or permission problem.",
    "source": "bash"
  },
  {
    "code": 64,
    "name": "EX_USAGE",
    "description": "The command was used incorrectly, e.g., with the wrong number of arguments, a bad flag, bad syntax in a parameter, etc.",
    "source": "sysexits"
  },
  {
    "code": 65,
    "name": "EX_DATAERR",
    "description": "The input data was incorrect in some way. This should only be used for user data and not system files.",
    "source": "sysexits"
  },
  {
    "code": 66,
    "name": "EX_NOINPUT",
    "description": "An input file (not a system file) did not exist or was not readable.",
    "source": "sysexits"
  },
  {
    "code": 67,
    "name": "EX_NOUSER",
    "description": "The user specified did not exist. This might be used for mail addresses or remote logins.",
    "source": "sysexits"
  },
  {
    "code": 68,
    "name": "EX_NOHOST",
    "description": "The host specified did not exist. This is used in mail addresses or network requests.",
    "source": "sysexits"
  },
  {
    "code": 69,
    "name": "EX_UNAVAILABLE",
    "description": "A service is unavailable. This can occur if a support program or file does not exist.",
    "source": "sysexits"
  },
  {
    "code": 70,
    "name": "EX_SOFTWARE",
    "description": "An internal software error has been detected. This should be limited to non-operating system related errors.",
    "source": "sysexits"
  },
  {
    "code": 71,
    "name": "EX_OSERR",
    "description": "An operating system error has been detected, such as the inability to fork, create a pipe, or similar.",
    "source": "sysexits"
  },
  {
    "code": 72,
    "name": "EX_OSFILE",
    "description": "Some system file (e.g., /etc/passwd, /var/run/utmp) does not exist, cannot be opened, or has some sort of error.",
    "source": "sysexits"
  },
  {
    "code": 73,
    "name": "EX_CANTCREAT",
    "description": "A (user specified) output file cannot be created.",
    "source": "sysexits"
  },
  {
    "code": 74,
    "name": "EX_IOERR",
    "description": "An error occurred while doing I/O on some file.",
    "source": "sysexits"
  },
  {
    "code": 75,
    "name": "EX_TEMPFAIL",
    "description": "Temporary failure, indicating something that is not really an error. In some cases, the operation can be retried.",
    "source": "sysexits"
  },
  {
    "code": 76,
    "name": "EX_PROTOCOL",
    "description": "The remote system returned something that was not possible during a protocol exchange.",
    "source": "sysexits"
  },
  {
    "code": 77,
    "name": "EX_NOPERM",
    "description": "You did not have sufficient permission to perform the operation. This is not intended for file system problems.",
    "source": "sysexits"
  },
  {
    "code": 78,
    "name": "EX_CONFIG",
    "description": "Something was found in an unconfigured or misconfigured state.",
    "source": "sysexits"
  },
  {
    "code": 126,
    "name": "Command Invoked Cannot Execute",
    "description": "Permission problem or command is not an executable. The command was found but could not be executed.",
    "source": "bash"
  },
  {
    "code": 127,
    "name": "Command Not Found",
    "description": "Command not found. Possible problem with $PATH or a typo in the command name.",
    "source": "bash"
  },
  {
    "code": 128,
    "name": "Invalid Exit Argument",
    "description": "Listed in the Advanced Bash-Scripting Guide as an invalid argument to exit. In practice current Bash exits with status 2 (\"numeric argument required\") for a non-integer argument, so 128 is rarely seen.",
    "source": "bash"
  },
  {
    "code": 129,
    "name": "SIGHUP",
    "description": "Fatal error signal 1 (SIGHUP — Hangup). Script terminated by signal 1.",
    "source": "bash"
  },
  {
    "code": 130,
    "name": "SIGINT",
    "description": "Fatal error signal 2 (SIGINT — Interrupt). Script terminated by Ctrl+C or SIGINT.",
    "source": "bash"
  },
  {
    "code": 131,
    "name": "SIGQUIT",
    "description": "Fatal error signal 3 (SIGQUIT — Quit). Script terminated by Ctrl+\\ or SIGQUIT.",
    "source": "bash"
  },
  {
    "code": 132,
    "name": "SIGILL",
    "description": "Fatal error signal 4 (SIGILL — Illegal instruction). Process attempted an illegal instruction.",
    "source": "bash"
  },
  {
    "code": 133,
    "name": "SIGTRAP",
    "description": "Fatal error signal 5 (SIGTRAP — Trace/breakpoint trap). Typically used by debuggers.",
    "source": "bash"
  },
  {
    "code": 134,
    "name": "SIGABRT",
    "description": "Fatal error signal 6 (SIGABRT — Abort). Process called abort() or was killed by SIGABRT.",
    "source": "bash"
  },
  {
    "code": 135,
    "name": "SIGBUS",
    "description": "Fatal error signal 7 (SIGBUS — Bus error). Process tried to access memory that does not physically exist.",
    "source": "bash"
  },
  {
    "code": 136,
    "name": "SIGFPE",
    "description": "Fatal error signal 8 (SIGFPE — Floating point exception). Erroneous arithmetic operation such as division by zero.",
    "source": "bash"
  },
  {
    "code": 137,
    "name": "SIGKILL",
    "description": "Fatal error signal 9 (SIGKILL — Killed). Process was forcefully killed, often via 'kill -9'.",
    "source": "bash"
  },
  {
    "code": 138,
    "name": "SIGUSR1",
    "description": "Fatal error signal 10 (SIGUSR1 — User-defined signal 1). User-defined signal.",
    "source": "bash"
  },
  {
    "code": 139,
    "name": "SIGSEGV",
    "description": "Fatal error signal 11 (SIGSEGV — Segmentation fault). Invalid memory reference or segmentation fault.",
    "source": "bash"
  },
  {
    "code": 140,
    "name": "SIGUSR2",
    "description": "Fatal error signal 12 (SIGUSR2 — User-defined signal 2). User-defined signal.",
    "source": "bash"
  },
  {
    "code": 141,
    "name": "SIGPIPE",
    "description": "Fatal error signal 13 (SIGPIPE — Broken pipe). Write to a pipe with no readers; broken pipe.",
    "source": "bash"
  },
  {
    "code": 142,
    "name": "SIGALRM",
    "description": "Fatal error signal 14 (SIGALRM — Alarm clock). Timer signal from alarm(); process exceeded its time limit.",
    "source": "bash"
  },
  {
    "code": 143,
    "name": "SIGTERM",
    "description": "Fatal error signal 15 (SIGTERM — Termination). Graceful termination request, the default signal sent by 'kill'.",
    "source": "bash"
  }
]
