Linux には標準的な終了ステータス コードはありますか? 質問する

Linux には標準的な終了ステータス コードはありますか? 質問する

Linux では、終了ステータスが 0 の場合、プロセスは正常に完了したとみなされます。

セグメンテーション エラーが発生すると、終了ステータスが 11 になることがよくありますが、これが単に私が働いている場所での慣例なのか (そのようにエラーが発生するアプリケーションはすべて内部のもの)、それとも標準なのかはわかりません。

Linux のプロセスには標準の終了コードがありますか?

ベストアンサー1

パート 1: 高度な Bash スクリプト ガイド

いつものように、高度な Bash スクリプト ガイドもっている素晴らしい情報: (これは別の回答にリンクされていましたが、非正規の URL でした。)

1:一般的なエラーのキャッチオール
2:シェル組み込み関数の誤用 (Bash ドキュメントによる)
126:呼び出されたコマンドは実行できません
127:「コマンドが見つかりません」
128:終了時の引数が無効です
128+n:致命的なエラー シグナル「n」
255:終了ステータスが範囲外です (終了は 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 */

おすすめ記事