Convention exit status code program posix unix Linux shell

Voir :

https://tldp.org/LDP/abs/html/exitcodes.html

https://www.gnu.org/software/bash/manual/html_node/Exit-Status.html

https://docs.pocoproject.org/current/Poco.Util.Application.html#29936

Voir aussi :

https://platform.openai.com/docs/guides/error-codes/api-errors

https://learn.microsoft.com/en-us/windows/win32/debug/system-error-codes--0-499-

import shutil shutil.errno.ENODATA

Exit status :

0: Success—Indicates that the command or program executed successfully without any errors.

1: General Error—A catch-all exit code for a variety of general errors. Often used when the command or program encounters an error, but no specific exit code is available for the situation.

2: Misuse of shell built-ins—Indicates incorrect usage of shell built-in commands or misuse of shell syntax.

126: Command cannot execute—The command was found, but it could not be executed, possibly due to insufficient permissions or other issues.

127: Command not found—The command was not found in the system's PATH, indicating that either the command does not exist or the PATH variable is incorrectly set.

128: Invalid exit argument—Returned when a script exits with an invalid argument. This usually indicates an error in the script itself.

128 + N: Fatal error signal N—Indicates that the command or program was terminated by a fatal error signal. For example, an exit code of 137 (128 + 9) means that the command was terminated by a SIGKILL signal.

130: Script terminated by Control-C—Indicates that the command or script was terminated by the user using Control-C (SIGINT signal).

255: Exit status out of range—Returned when the exit status is outside the valid range (0 to 254)

errno (moreutils)

$ errno -l
EPERM 1 Opération non permise
ENOENT 2 Aucun fichier ou dossier de ce type
ESRCH 3 Aucun processus de ce type
EINTR 4 Appel système interrompu
EIO 5 Erreur d'entrée/sortie
ENXIO 6 Aucun périphérique ou adresse
E2BIG 7 Liste d'arguments trop longue
ENOEXEC 8 Erreur de format pour exec()
EBADF 9 Mauvais descripteur de fichier
ECHILD 10 Aucun processus enfant
EAGAIN 11 Ressource temporairement non disponible
ENOMEM 12 Ne peut allouer de la mémoire
EACCES 13 Permission non accordée
EFAULT 14 Mauvaise adresse
ENOTBLK 15 Bloc de périphérique requis
EBUSY 16 Périphérique ou ressource occupé
EEXIST 17 Le fichier existe
EXDEV 18 Lien physique inter-périphérique invalide
ENODEV 19 Aucun périphérique de ce type
ENOTDIR 20 N'est pas un dossier
EISDIR 21 est un dossier
EINVAL 22 Argument invalide
ENFILE 23 Trop de fichiers ouverts dans le système
EMFILE 24 Trop de fichiers ouverts
ENOTTY 25 Ioctl() inapproprié pour un périphérique
ETXTBSY 26 Fichier texte occupé
EFBIG 27 Fichier trop gros
ENOSPC 28 Aucun espace disponible sur le périphérique
ESPIPE 29 Repérage non permis
EROFS 30 Système de fichiers accessible en lecture seulement
EMLINK 31 Trop de liens
EPIPE 32 Relais brisé (pipe)
EDOM 33 L'argument numérique est hors du domaine
ERANGE 34 Le résultat numérique est en dehors de l'intervalle
EDEADLK 35 Blocage évité des accès aux ressources
ENAMETOOLONG 36 Nom de fichier trop long
ENOLCK 37 Aucun verrou disponible
ENOSYS 38 Fonction non implantée
ENOTEMPTY 39 Le dossier n'est pas vide
ELOOP 40 Trop de niveaux de liens symboliques
EWOULDBLOCK 11 Ressource temporairement non disponible
ENOMSG 42 Aucun message du type désiré
EIDRM 43 Identificateur éliminé
ECHRNG 44 Numéro de canal en dehors des limites
EL2NSYNC 45 Niveau 2 non synchronisé
EL3HLT 46 Niveau 3 en halte
EL3RST 47 Niveau 3 réinitialisé
ELNRNG 48 Numéro du lien hors intervalle
EUNATCH 49 Pilote du protocole n'est pas attaché
ENOCSI 50 Aucune structure CSI disponible
EL2HLT 51 Niveau 2 en halte
EBADE 52 Échange invalide
EBADR 53 Descripteur de requête invalide
EXFULL 54 L'échangeur est plein
ENOANO 55 Aucune « anode » disponible
EBADRQC 56 Code de requête invalide
EBADSLT 57 Dalot invalide
EDEADLOCK 35 Blocage évité des accès aux ressources
EBFONT 59 Mauvais format du fichier de fontes
ENOSTR 60 Le périphérique n'est pas de type « stream »
ENODATA 61 Aucune donnée disponible
ETIME 62 Expiration de la minuterie
ENOSR 63 Aucune autre ressource de type streams disponible
ENONET 64 La machine cible n'est pas sur le réseau
ENOPKG 65 Le paquetage n'est pas installé
EREMOTE 66 L'objet est télé-accessible
ENOLINK 67 Le lien a été endommagé
EADV 68 Erreur d'annonce
ESRMNT 69 Erreur srmount()
ECOMM 70 Erreur de communication lors de la transmission
EPROTO 71 Erreur de protocole
EMULTIHOP 72 Tentative de connexion par de multiples noeuds de relais
EDOTDOT 73 Erreur spécifique à « RFS »
EBADMSG 74 Message invalide
EOVERFLOW 75 Valeur trop grande pour le type défini de données
ENOTUNIQ 76 Le nom n'est pas unique sur le réseau
EBADFD 77 Le descripteur du fichier est dans un mauvais état
EREMCHG 78 L'adresse de l'hôte cible a été modifiée
ELIBACC 79 Ne peut accéder à la librairie partagée demandée
ELIBBAD 80 Accès d'une librairie partagée qui est corrompue
ELIBSCN 81 La section .lib dans a.out est corrompue
ELIBMAX 82 Tentative d'édition de liens à partir de trop de librairies partagées
ELIBEXEC 83 Ne peut exécuter une librairie partagée directement
EILSEQ 84 Chaîne multi-octets ou étendue de caractères invalide ou incomplète
ERESTART 85 Appel système interrompu, il aurait dû être relancé
ESTRPIPE 86 Erreur de relais de type streams
EUSERS 87 Trop d'usagers
ENOTSOCK 88 Opération de type socket sur un type non socket
EDESTADDRREQ 89 Adresse de destination requise
EMSGSIZE 90 Message trop long
EPROTOTYPE 91 Mauvais type pour un socket de protocole
ENOPROTOOPT 92 Protocole non disponible
EPROTONOSUPPORT 93 Protocole non supporté
ESOCKTNOSUPPORT 94 Type de socket non supporté
EOPNOTSUPP 95 Opération non supportée
EPFNOSUPPORT 96 Famille de protocoles non supportée
EAFNOSUPPORT 97 Famille d'adresses non supportée par le protocole
EADDRINUSE 98 Adresse déjà utilisée
EADDRNOTAVAIL 99 Ne peut attribuer l'adresse demandée
ENETDOWN 100 Le réseau ne fonctionne pas
ENETUNREACH 101 Le réseau n'est pas accessible
ENETRESET 102 Le réseau a rompu la connexion lors de la réinitialisation
ECONNABORTED 103 Le logiciel a provoqué l'abandon de la connexion
ECONNRESET 104 Connexion ré-initialisée par le correspondant
ENOBUFS 105 Aucun espace tampon disponible
EISCONN 106 Noeud final de transport déjà connecté
ENOTCONN 107 Noeud final de transport n'est pas connecté
ESHUTDOWN 108 Ne peut transmettre suite à la fermeture du noeud final de transport
ETOOMANYREFS 109 Trop de références : ne peut segmenter
ETIMEDOUT 110 Connexion terminée par expiration du délai d'attente
ECONNREFUSED 111 Connexion refusée
EHOSTDOWN 112 L'hôte cible est arrêté ou en panne
EHOSTUNREACH 113 Aucun chemin d'accès pour atteindre l'hôte cible
EALREADY 114 Opération déjà en cours
EINPROGRESS 115 Opération maintenant en cours
ESTALE 116 Panne d'accès au fichier
EUCLEAN 117 La structure a besoin d'un nettoyage
ENOTNAM 118 Aucun fichier de type « XENIX named »
ENAVAIL 119 Aucun sémaphore XENIX disponible
EISNAM 120 est un type de fichier nommé (named)
EREMOTEIO 121 Erreur d'entrée/sortie sur l'hôte cible
EDQUOT 122 Débordement du quota d'espace disque
ENOMEDIUM 123 Aucun médium trouvé
EMEDIUMTYPE 124 Mauvais type de médium
ECANCELED 125 Opération annulée
ENOKEY 126 Clé requise non disponible
EKEYEXPIRED 127 Expiration de la clé
EKEYREVOKED 128 La clé a été révoquée
EKEYREJECTED 129 La clé a été rejetée par le service
EOWNERDEAD 130 Propriétaire mort
ENOTRECOVERABLE 131 Etat non récupérable
ERFKILL 132 Opération impossible du fait de RF-kill
EHWPOISON 133 La page mémoire a une erreur matériel
ENOTSUP 95 Opération non supportée

$ LANG=C errno -l
EPERM 1 Operation not permitted
ENOENT 2 No such file or directory
ESRCH 3 No such process
EINTR 4 Interrupted system call
EIO 5 Input/output error
ENXIO 6 No such device or address
E2BIG 7 Argument list too long
ENOEXEC 8 Exec format error
EBADF 9 Bad file descriptor
ECHILD 10 No child processes
EAGAIN 11 Resource temporarily unavailable
ENOMEM 12 Cannot allocate memory
EACCES 13 Permission denied
EFAULT 14 Bad address
ENOTBLK 15 Block device required
EBUSY 16 Device or resource busy
EEXIST 17 File exists
EXDEV 18 Invalid cross-device link
ENODEV 19 No such device
ENOTDIR 20 Not a directory
EISDIR 21 Is a directory
EINVAL 22 Invalid argument
ENFILE 23 Too many open files in system
EMFILE 24 Too many open files
ENOTTY 25 Inappropriate ioctl for device
ETXTBSY 26 Text file busy
EFBIG 27 File too large
ENOSPC 28 No space left on device
ESPIPE 29 Illegal seek
EROFS 30 Read-only file system
EMLINK 31 Too many links
EPIPE 32 Broken pipe
EDOM 33 Numerical argument out of domain
ERANGE 34 Numerical result out of range
EDEADLK 35 Resource deadlock avoided
ENAMETOOLONG 36 File name too long
ENOLCK 37 No locks available
ENOSYS 38 Function not implemented
ENOTEMPTY 39 Directory not empty
ELOOP 40 Too many levels of symbolic links
EWOULDBLOCK 11 Resource temporarily unavailable
ENOMSG 42 No message of desired type
EIDRM 43 Identifier removed
ECHRNG 44 Channel number out of range
EL2NSYNC 45 Level 2 not synchronized
EL3HLT 46 Level 3 halted
EL3RST 47 Level 3 reset
ELNRNG 48 Link number out of range
EUNATCH 49 Protocol driver not attached
ENOCSI 50 No CSI structure available
EL2HLT 51 Level 2 halted
EBADE 52 Invalid exchange
EBADR 53 Invalid request descriptor
EXFULL 54 Exchange full
ENOANO 55 No anode
EBADRQC 56 Invalid request code
EBADSLT 57 Invalid slot
EDEADLOCK 35 Resource deadlock avoided
EBFONT 59 Bad font file format
ENOSTR 60 Device not a stream
ENODATA 61 No data available
ETIME 62 Timer expired
ENOSR 63 Out of streams resources
ENONET 64 Machine is not on the network
ENOPKG 65 Package not installed
EREMOTE 66 Object is remote
ENOLINK 67 Link has been severed
EADV 68 Advertise error
ESRMNT 69 Srmount error
ECOMM 70 Communication error on send
EPROTO 71 Protocol error
EMULTIHOP 72 Multihop attempted
EDOTDOT 73 RFS specific error
EBADMSG 74 Bad message
EOVERFLOW 75 Value too large for defined data type
ENOTUNIQ 76 Name not unique on network
EBADFD 77 File descriptor in bad state
EREMCHG 78 Remote address changed
ELIBACC 79 Can not access a needed shared library
ELIBBAD 80 Accessing a corrupted shared library
ELIBSCN 81 .lib section in a.out corrupted
ELIBMAX 82 Attempting to link in too many shared libraries
ELIBEXEC 83 Cannot exec a shared library directly
EILSEQ 84 Invalid or incomplete multibyte or wide character
ERESTART 85 Interrupted system call should be restarted
ESTRPIPE 86 Streams pipe error
EUSERS 87 Too many users
ENOTSOCK 88 Socket operation on non-socket
EDESTADDRREQ 89 Destination address required
EMSGSIZE 90 Message too long
EPROTOTYPE 91 Protocol wrong type for socket
ENOPROTOOPT 92 Protocol not available
EPROTONOSUPPORT 93 Protocol not supported
ESOCKTNOSUPPORT 94 Socket type not supported
EOPNOTSUPP 95 Operation not supported
EPFNOSUPPORT 96 Protocol family not supported
EAFNOSUPPORT 97 Address family not supported by protocol
EADDRINUSE 98 Address already in use
EADDRNOTAVAIL 99 Cannot assign requested address
ENETDOWN 100 Network is down
ENETUNREACH 101 Network is unreachable
ENETRESET 102 Network dropped connection on reset
ECONNABORTED 103 Software caused connection abort
ECONNRESET 104 Connection reset by peer
ENOBUFS 105 No buffer space available
EISCONN 106 Transport endpoint is already connected
ENOTCONN 107 Transport endpoint is not connected
ESHUTDOWN 108 Cannot send after transport endpoint shutdown
ETOOMANYREFS 109 Too many references: cannot splice
ETIMEDOUT 110 Connection timed out
ECONNREFUSED 111 Connection refused
EHOSTDOWN 112 Host is down
EHOSTUNREACH 113 No route to host
EALREADY 114 Operation already in progress
EINPROGRESS 115 Operation now in progress
ESTALE 116 Stale file handle
EUCLEAN 117 Structure needs cleaning
ENOTNAM 118 Not a XENIX named type file
ENAVAIL 119 No XENIX semaphores available
EISNAM 120 Is a named type file
EREMOTEIO 121 Remote I/O error
EDQUOT 122 Disk quota exceeded
ENOMEDIUM 123 No medium found
EMEDIUMTYPE 124 Wrong medium type
ECANCELED 125 Operation canceled
ENOKEY 126 Required key not available
EKEYEXPIRED 127 Key has expired
EKEYREVOKED 128 Key has been revoked
EKEYREJECTED 129 Key was rejected by service
EOWNERDEAD 130 Owner died
ENOTRECOVERABLE 131 State not recoverable
ERFKILL 132 Operation not possible due to RF-kill
EHWPOISON 133 Memory page has hardware error
ENOTSUP 95 Operation not supported

GPG / crypto

Voir :

https://github.com/gpg/gnupg/blob/master/doc/DETAILS#general-status-codes

https://docs.ansible.com/ansible/latest/reference_appendices/config.html - GALAXY_IGNORE_INVALID_SIGNATURE_STATUS_CODES

Code d'erreurs

EXPSIG

EXPKEYSIG

REVKEYSIG

BADSIG

ERRSIG

NO_PUBKEY

MISSING_PASSPHRASE

BAD_PASSPHRASE

NODATA

UNEXPECTED

ERROR

FAILURE

BADARMOR

KEYEXPIRED

KEYREVOKED

NO_SECKEY