Linux进程的退出码及其含义(linux进程退出码)
Linux进程的退出码是在Linux系统中进程结束后返回给调用它的父进程,用于父进程判断子进程正确执行完毕后的返回值。通常这一返回值由程序员在代码中进行设置,用来表示该程序正常或者异常退出,或者失败或成功的状态。Linux进程的退出码整数值在进程结束后由系统内核课继承。
默认退出状态为0,表示正常退出;而非0的所有值均表示异常退出,传递给父进程的退出码最大值为255,其中0-125表示不同的状态,可以用下面的命令来查看:
$ man sysexits
一般来说,程序是成功执行完最后一句代码而正常退出,这时程序返回0,也就是EX_OK的退出码,它的宏定义如下:
#define EX_OK 0 /* processes terminated with no errors */
此外,EX_USAGE和EX_DATAERR分别代表程序的用法出错和数据出错,EX_NOINPUT代表程序没有输入,EX_UNAVAILABLE代表程序不可用,EX_SOFTWARE代表程序的软件内部出错,最后EX_OSERR代表了系统内部错误:
#define EX_USAGE 64 /* command line usage error */
#define EX_DATAERR 65 /* data format error */#define EX_NOINPUT 66 /* cannot open input */
#define EX_UNAVAILABLE 69 /* service unavailable */#define EX_SOFTWARE 70 /* internal software error */
#define EX_OSERR 71 /* system error (e.g., can't fork) */
如果程序设置了退出码:
exit(EX_OSERR);
表示这个程序由于系统原因而异常退出,需要我们更深入查看程序,以确定出错的具体原因。
总之,Linux进程的退出状态值是不受系统限制的,程序写者可以定义各种状态并有不同的含义,而根据状态来识别错误的情况,并做出相应的处理。