linux - Linux 中是否有任何标准的退出状态代码?

标签 linux error-handling exit-code

如果进程的退出状态为 0,则认为进程在 Linux 中已正确完成。

我已经看到段错误通常会导致退出状态为 11,尽管我不知道这只是我工作的惯例(像这样失败的应用程序都是内部的)还是标准。

Linux 中的进程有标准退出代码吗?

最佳答案

第 1 部分:高级 Bash 脚本指南

与往常一样,Advanced Bash Scripting Guidegreat information : (这在另一个答案中链接,但链接到非规范 URL。)

1: Catchall for general errors
2: Misuse of shell builtins (according to Bash documentation)
126: Command invoked cannot execute
127: "command not found"
128: Invalid argument to exit
128+n: Fatal error signal "n"
255: Exit status out of range (exit takes only integer args in the range 0 - 255)

第 2 部分:sysexits.h

ABSG 引用 sysexits.h

在 Linux 上:

$ find /usr -name sysexits.h
/usr/include/sysexits.h
$ cat /usr/include/sysexits.h

/*
 * Copyright (c) 1987, 1993
 *  The Regents of the University of California.  All rights reserved.

 (A whole bunch of text left out.)

#define EX_OK           0       /* successful termination */
#define EX__BASE        64      /* base value for error messages */
#define EX_USAGE        64      /* command line usage error */
#define EX_DATAERR      65      /* data format error */
#define EX_NOINPUT      66      /* cannot open input */    
#define EX_NOUSER       67      /* addressee unknown */    
#define EX_NOHOST       68      /* host name unknown */
#define EX_UNAVAILABLE  69      /* service unavailable */
#define EX_SOFTWARE     70      /* internal software error */
#define EX_OSERR        71      /* system error (e.g., can't fork) */
#define EX_OSFILE       72      /* critical OS file missing */
#define EX_CANTCREAT    73      /* can't create (user) output file */
#define EX_IOERR        74      /* input/output error */
#define EX_TEMPFAIL     75      /* temp failure; user is invited to retry */
#define EX_PROTOCOL     76      /* remote error in protocol */
#define EX_NOPERM       77      /* permission denied */
#define EX_CONFIG       78      /* configuration error */

#define EX__MAX 78      /* maximum listed value */

关于linux - Linux 中是否有任何标准的退出状态代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1101957/

相关文章:

c++ - 从 C++ 如何执行 C 中的方法或访问结构?

r - 为什么我使用naiveBayes函数会得到未定义的列?

python - 如何使用 python 停止程序的执行?

oracle - Sql*plus 总是返回退出代码 0?

linux - linux在哪里开启虚拟内存?

php - cURL 7.27.0-1 无法通过 Apache PHP 加载,但在 php 命令行上运行良好

linux - 如何将日志键重定向到标准输出?

.net分层设计: return error code to forms indicating which controls have an error

python-3.x - 仅接受介于0和1之间的 float -python

zsh - 自定义 zsh 在显示上一个命令退出代码时的提示