Kody błędów systemu Linux
Sprawdź, co oznacza errno, taki jak ECONNREFUSED lub „[Errno 13]”, sygnał, taki jak SIGKILL, lub kod wyjścia, taki jak 137, z wartościami dla Linuksa i macOS. Wklej cały komunikat programu, Dockera lub Kubernetesa, a narzędzie wyodrębni z niego kod.
Przykłady:

208 z 208 kodów

errnoBłędy wywołań systemowych151
EPERM
Linux 1macOS 1

Operation not permitted

Operacja wymaga przywilejów, których proces nie ma, np. zmiana właściciela pliku, wysłanie sygnału do procesu innego użytkownika lub modyfikacja niezmiennego pliku (chattr +i). W przeciwieństwie do EACCES nie rozwiąże tego zmiana uprawnień pliku: potrzebny jest root lub odpowiednia capability.

ENOENT
Linux 2macOS 2

No such file or directory

Plik lub katalog nie istnieje. Pojawia się też, gdy brakuje katalogu pośredniego w ścieżce, gdy dowiązanie symboliczne wskazuje na nieistniejący cel lub gdy nie jest zainstalowany interpreter z wiersza #! skryptu.

ESRCH
Linux 3macOS 3

No such process

Nie istnieje żaden proces, grupa procesów ani wątek o tym identyfikatorze; na przykład przy wywołaniu kill dla PID-u procesu, który już się zakończył.

EINTR
Linux 4macOS 4

Interrupted system call

Sygnał przerwał wywołanie systemowe, zanim się zakończyło. To nie jest prawdziwy błąd: program powinien ponowić wywołanie albo zainstalować procedurę obsługi sygnału z SA_RESTART.

EIO
Linux 5macOS 5

Input/output error

Niskopoziomowy błąd wejścia/wyjścia, zwykle przy odczycie lub zapisie na urządzeniu. W przypadku dysków często oznacza uszkodzone sektory lub wadliwy kabel: sprawdź dmesg i stan SMART. Pojawia się też przy zapisie do terminala, który został już zamknięty.

ENXIO
Linux 6macOS 6

No such device or address

macOS: Device not configured

Urządzenie lub adres nie istnieje: plik urządzenia jest, ale nie stoi za nim żaden sprzęt, albo otwarto do zapisu kolejkę FIFO z O_NONBLOCK bez żadnego czytelnika.

E2BIG
Linux 7macOS 7

Argument list too long

Lista argumentów i zmiennych środowiskowych przekazywana do exec jest za duża. To klasyczny błąd „Argument list too long” przy użyciu symbolu wieloznacznego, który rozwija się do tysięcy plików; użyj find -exec lub xargs.

ENOEXEC
Linux 8macOS 8

Exec format error

Plik nie ma rozpoznawanego formatu wykonywalnego: to plik binarny innej architektury, jest uszkodzony albo to skrypt bez wiersza #!.

EBADF
Linux 9macOS 9

Bad file descriptor

Deskryptor pliku jest nieprawidłowy, został już zamknięty lub otwarto go w trybie, który nie pozwala na operację, np. zapis do deskryptora otwartego tylko do odczytu.

ECHILD
Linux 10macOS 10

No child processes

Proces nie ma procesów potomnych, na które mógłby czekać za pomocą wait lub waitpid, często dlatego, że SIGCHLD jest ignorowany i procesy potomne są zbierane automatycznie.

EAGAIN
Linux 11macOS 35

Resource temporarily unavailable

Zasób jest chwilowo niedostępny i warto ponowić próbę. W operacjach nieblokujących oznacza, że nie ma jeszcze danych lub miejsca; w fork – że osiągnięto limit procesów lub wątków (ulimit -u lub pids.max cgroup).

Ta sama wartość:EWOULDBLOCK

ENOMEM
Linux 12macOS 12

Cannot allocate memory

Brakuje pamięci na wykonanie operacji lub przekroczono limit pamięci procesu. W fork lub mmap może to wynikać z polityki overcommit, limitu cgroup lub braku przestrzeni adresowej.

EACCES
Linux 13macOS 13

Permission denied

Odmowa dostępu z powodu uprawnień pliku lub katalogu w ścieżce (każdy wymaga uprawnienia do wykonywania), listy ACL, SELinux lub AppArmor albo montowania z noexec. bind zwraca go też przy użyciu portu niższego niż 1024 bez przywilejów.

EFAULT
Linux 14macOS 14

Bad address

Do wywołania systemowego przekazano wskaźnik na nieprawidłowy adres pamięci. Oznacza to błąd w programie.

ENOTBLK
Linux 15macOS 15

Block device required

Operacja wymaga urządzenia blokowego, takiego jak dysk, a otrzymała inny rodzaj pliku; na przykład przy montowaniu zwykłego pliku bez -o loop.

EBUSY
Linux 16macOS 16

Device or resource busy

macOS: Device / Resource busy

Urządzenie lub zasób jest zajęty. Typowe przy odmontowywaniu systemu plików, w którym są otwarte pliki lub w którym znajduje się bieżący katalog terminala; lsof lub fuser pokażą, które procesy go używają.

EEXIST
Linux 17macOS 17

File exists

Plik, katalog lub inny obiekt o tej nazwie już istnieje, np. przy tworzeniu z O_EXCL, użyciu mkdir bez -p lub tworzeniu dowiązania, którego cel już istnieje.

EXDEV
Linux 18macOS 18

Invalid cross-device link

macOS: Cross-device link

Nie można utworzyć dowiązania twardego ani zmienić nazwy pliku między różnymi systemami plików. mv radzi sobie z tym, kopiując i usuwając; programy używające rename() muszą zrobić to samo.

ENODEV
Linux 19macOS 19

No such device

macOS: Operation not supported by device

Urządzenie nie istnieje lub nie obsługuje operacji; na przykład przy montowaniu typu systemu plików, którego moduł jądra nie jest załadowany.

ENOTDIR
Linux 20macOS 20

Not a directory

Element ścieżki, który powinien być katalogiem, jest plikiem, albo zażądano katalogu (O_DIRECTORY), a nim nie jest.

EISDIR
Linux 21macOS 21

Is a directory

Próbowano wykonać na katalogu operację przeznaczoną dla plików, np. otworzyć go do zapisu.

EINVAL
Linux 22macOS 22

Invalid argument

Argument jest nieprawidłowy dla danego wywołania: wartość spoza zakresu, niezgodna kombinacja opcji lub operacja, której obiekt nie obsługuje. To błąd ogólny: strona man wywołania wymienia konkretne przypadki.

ENFILE
Linux 23macOS 23

Too many open files in system

Wyczerpała się ogólnosystemowa tabela otwartych plików. Limit ustawia się za pomocą fs.file-max w sysctl.

EMFILE
Linux 24macOS 24

Too many open files

Proces osiągnął limit otwartych deskryptorów („Too many open files”). Podnieś limit za pomocą ulimit -n lub LimitNOFILE w systemd i sprawdź, czy program nie zostawia niezamkniętych plików lub gniazd.

ENOTTY
Linux 25macOS 25

Inappropriate ioctl for device

Zażądano operacji terminalowej (ioctl) na czymś, co nie jest terminalem, np. gdy wyjście programu interaktywnego jest przekierowane do pliku lub potoku.

ETXTBSY
Linux 26macOS 26

Text file busy

Plik wykonywalny jest w użyciu: nie można zapisywać do pliku binarnego podczas jego działania ani uruchomić takiego, który jest nadal otwarty do zapisu. Aby go zaktualizować, lepiej zapisać nowy plik i zmienić jego nazwę.

EFBIG
Linux 27macOS 27

File too large

Plik przekracza maksymalny rozmiar obsługiwany przez system plików (4 GB w FAT32) lub limit RLIMIT_FSIZE procesu.

ENOSPC
Linux 28macOS 28

No space left on device

Brak miejsca na urządzeniu. Jeśli df pokazuje wolne miejsce, sprawdź i-węzły za pomocą df -i. inotify również go zwraca po wyczerpaniu fs.inotify.max_user_watches.

ESPIPE
Linux 29macOS 29

Illegal seek

Nie można wykonać lseek na potoku, kolejce FIFO ani gnieździe, ponieważ nie mają one pozycji.

EROFS
Linux 30macOS 30

Read-only file system

System plików jest zamontowany tylko do odczytu. Jeśli przeszedł w tryb tylko do odczytu, choć nikt o to nie prosił, zrobiło to jądro po wykryciu błędów: sprawdź dmesg i uruchom fsck.

EMLINK
Linux 31macOS 31

Too many links

Przekroczono maksymalną liczbę dowiązań twardych do pliku lub, w niektórych systemach plików, podkatalogów w katalogu.

EPIPE
Linux 32macOS 32

Broken pipe

Zapisano do potoku lub gniazda, którego drugi koniec został już zamknięty („Broken pipe”). Oprócz błędu proces otrzymuje SIGPIPE; to normalne, gdy czytelnik kończy wcześniej, jak w cmd | head.

EDOM
Linux 33macOS 33

Numerical argument out of domain

Argument funkcji matematycznej jest poza jej dziedziną, np. pierwiastek kwadratowy z liczby ujemnej.

ERANGE
Linux 34macOS 34

Numerical result out of range

macOS: Result too large

Wynik funkcji jest zbyt duży lub zbyt mały, by go przedstawić, albo bufor jest za mały na wynik, jak w getcwd z krótkim buforem.

EDEADLK
Linux 35macOS 11

Resource deadlock avoided

Uniknięto zakleszczenia: żądana blokada, np. blokada pliku przez fcntl lub mutex z wykrywaniem błędów, czekałaby w nieskończoność.

Ta sama wartość:EDEADLOCK

ENAMETOOLONG
Linux 36macOS 63

File name too long

Ścieżka lub jeden z jej elementów przekracza maksymalną długość: w Linuksie zwykle 255 bajtów na nazwę i 4096 na ścieżkę.

ENOLCK
Linux 37macOS 77

No locks available

Brak dostępnych blokad. W NFS zwykle oznacza, że usługa blokad (lockd lub rpc.statd) nie działa.

ENOSYS
Linux 38macOS 78

Function not implemented

Wywołanie systemowe nie istnieje w tym jądrze lub nie jest zaimplementowane. Typowe dla plików binarnych skompilowanych dla nowszego jądra albo dla profili seccomp kontenerów, które nie znają nowych wywołań.

ENOTEMPTY
Linux 39macOS 66

Directory not empty

Katalog nie jest pusty, np. przy użyciu rmdir lub zmianie nazwy na istniejący katalog. Aby usunąć go wraz z zawartością, użyj rm -r.

ELOOP
Linux 40macOS 62

Too many levels of symbolic links

Przy rozwiązywaniu ścieżki napotkano zbyt wiele połączonych dowiązań symbolicznych, zwykle z powodu pętli, albo użyto O_NOFOLLOW na dowiązaniu symbolicznym.

ENOMSG
Linux 42macOS 91

No message of desired type

W kolejce komunikatów System V nie ma komunikatu żądanego typu.

EIDRM
Linux 43macOS 90

Identifier removed

Identyfikator IPC System V (kolejka, semafor lub pamięć współdzielona) został usunięty, gdy proces go używał.

ECHRNG
Linux 44macOS —

Channel number out of range

Numer kanału poza zakresem. To przestarzały kod bez praktycznego zastosowania w Linuksie.

EL2NSYNC
Linux 45macOS —

Level 2 not synchronized

Poziom 2 niezsynchronizowany. To przestarzały kod z System V bez praktycznego zastosowania w Linuksie.

EL3HLT
Linux 46macOS —

Level 3 halted

Poziom 3 zatrzymany. To przestarzały kod z System V bez praktycznego zastosowania w Linuksie.

EL3RST
Linux 47macOS —

Level 3 reset

Poziom 3 zresetowany. To przestarzały kod z System V bez praktycznego zastosowania w Linuksie.

ELNRNG
Linux 48macOS —

Link number out of range

Numer łącza poza zakresem. To przestarzały kod bez praktycznego zastosowania w Linuksie.

EUNATCH
Linux 49macOS —

Protocol driver not attached

Sterownik protokołu nie jest podłączony. Używa go niewiele podsystemów, np. niektóre sterowniki Bluetooth.

ENOCSI
Linux 50macOS —

No CSI structure available

Brak dostępnej struktury CSI. To przestarzały kod bez praktycznego zastosowania w Linuksie.

EL2HLT
Linux 51macOS —

Level 2 halted

Poziom 2 zatrzymany. To przestarzały kod z System V bez praktycznego zastosowania w Linuksie.

EBADE
Linux 52macOS —

Invalid exchange

Nieprawidłowa wymiana. To przestarzały kod, który niektóre sterowniki i systemy plików wykorzystują ponownie z własnym znaczeniem.

EBADR
Linux 53macOS —

Invalid request descriptor

Nieprawidłowy deskryptor żądania. To przestarzały kod, który niektóre sterowniki wykorzystują ponownie z własnym znaczeniem.

EXFULL
Linux 54macOS —

Exchange full

Wymiana pełna. To przestarzały kod bez praktycznego zastosowania w Linuksie.

ENOANO
Linux 55macOS —

No anode

Brak „anode”. To przestarzały kod bez praktycznego zastosowania w Linuksie.

EBADRQC
Linux 56macOS —

Invalid request code

Nieprawidłowy kod żądania. To kod przestarzały; niektóre sterowniki używają go dla poleceń, których nie obsługują.

EBADSLT
Linux 57macOS —

Invalid slot

Nieprawidłowy slot. To przestarzały kod bez praktycznego zastosowania w Linuksie.

EBFONT
Linux 59macOS —

Bad font file format

Nieprawidłowy format pliku czcionki. To przestarzały kod bez praktycznego zastosowania w Linuksie.

ENOSTR
Linux 60macOS 99

Device not a stream

macOS: Not a STREAM

Urządzenie nie jest STREAM. Należy do interfejsu STREAMS z System V, którego Linux nie implementuje.

ENODATA
Linux 61macOS 96

No data available

macOS: No message available on STREAM

Brak dostępnych danych. W Linuksie zwraca go getxattr, gdy atrybut rozszerzony nie istnieje; w macOS ten przypadek to ENOATTR.

ETIME
Linux 62macOS 101

Timer expired

macOS: STREAM ioctl timeout

Upłynął czas timera. Pochodzi ze STREAMS; w Linuksie używają go niektóre sterowniki oraz io_uring dla operacji z limitem czasu.

ENOSR
Linux 63macOS 98

Out of streams resources

macOS: No STREAM resources

Wyczerpały się zasoby STREAMS – interfejsu, którego Linux nie implementuje.

ENONET
Linux 64macOS —

Machine is not on the network

Komputer nie jest w sieci. To przestarzały, rzadko używany kod.

ENOPKG
Linux 65macOS —

Package not installed

Pakiet nie jest zainstalowany. To kod przestarzały; niektóre podsystemy używają go, gdy brakuje modułu, np. kryptograficznego.

EREMOTE
Linux 66macOS 71

Object is remote

macOS: Too many levels of remote in path

Obiekt jest zdalny. W NFS oznacza ścieżkę eksportowaną z innego serwera.

ENOLINK
Linux 67macOS 97

Link has been severed

Łącze zostało zerwane. To kod przestarzały; niektóre sterowniki używają go po utracie połączenia z urządzeniem.

EADV
Linux 68macOS —

Advertise error

Błąd „advertise”. To przestarzały kod z RFS, nieużywany w Linuksie.

ESRMNT
Linux 69macOS —

Srmount error

Błąd „srmount”. To przestarzały kod z RFS, nieużywany w Linuksie.

ECOMM
Linux 70macOS —

Communication error on send

Błąd komunikacji podczas wysyłania. To kod przestarzały; używają go niektóre sterowniki sieciowe i USB.

EPROTO
Linux 71macOS 100

Protocol error

Błąd protokołu: druga strona lub urządzenie odpowiedziało czymś nieoczekiwanym. Pojawia się przy urządzeniach USB i w połączeniach zerwanych w trakcie wymiany.

EMULTIHOP
Linux 72macOS 95

Multihop attempted

Próbowano wykonać wielokrotny przeskok (multihop). To przestarzały kod z RFS.

EDOTDOT
Linux 73macOS —

RFS specific error

Błąd specyficzny dla RFS. Nieużywany w Linuksie.

EBADMSG
Linux 74macOS 94

Bad message

Komunikat jest źle sformułowany lub uszkodzony. ext4, XFS i Btrfs zwracają go, z aliasem EFSBADCRC, gdy nie zgadza się suma kontrolna metadanych.

Ta sama wartość:EFSBADCRC

EOVERFLOW
Linux 75macOS 84

Value too large for defined data type

macOS: Value too large to be stored in data type

Wartość nie mieści się w docelowym typie danych; na przykład gdy 32-bitowy program skompilowany bez obsługi dużych plików otwiera plik większy niż 2 GB.

ENOTUNIQ
Linux 76macOS —

Name not unique on network

Nazwa nie jest unikatowa w sieci. To przestarzały kod.

EBADFD
Linux 77macOS —

File descriptor in bad state

Deskryptor pliku jest w nieprawidłowym stanie. Używają go ALSA i niektóre sterowniki, gdy urządzenie nie jest gotowe.

EREMCHG
Linux 78macOS —

Remote address changed

Zmienił się adres zdalny. To przestarzały kod.

ELIBACC
Linux 79macOS —

Can not access a needed shared library

Brak dostępu do wymaganej biblioteki współdzielonej. To przestarzały kod z plików binarnych a.out.

ELIBBAD
Linux 80macOS —

Accessing a corrupted shared library

Biblioteka współdzielona jest uszkodzona. To przestarzały kod z plików binarnych a.out.

ELIBSCN
Linux 81macOS —

.lib section in a.out corrupted

Sekcja .lib pliku binarnego a.out jest uszkodzona. To przestarzały kod.

ELIBMAX
Linux 82macOS —

Attempting to link in too many shared libraries

Próbowano dołączyć zbyt wiele bibliotek współdzielonych. To przestarzały kod z a.out.

ELIBEXEC
Linux 83macOS —

Cannot exec a shared library directly

Biblioteki współdzielonej nie można uruchomić bezpośrednio. To przestarzały kod z a.out.

EILSEQ
Linux 84macOS 92

Invalid or incomplete multibyte or wide character

macOS: Illegal byte sequence

Sekwencja bajtów jest nieprawidłowa dla kodowania znaków, np. tekst, który nie jest poprawnym UTF-8, przy konwersji za pomocą iconv lub funkcji wielobajtowych.

ERESTART
Linux 85macOS —

Interrupted system call should be restarted

Przerwane wywołanie należy uruchomić ponownie. Służy do wewnętrznego użytku jądra i nie powinno docierać do programów.

ESTRPIPE
Linux 86macOS —

Streams pipe error

Błąd potoku STREAMS. ALSA zwraca go, gdy urządzenie audio jest wstrzymane.

EUSERS
Linux 87macOS 68

Too many users

Zbyt wielu użytkowników. Zwraca go system przydziałów dyskowych, gdy zapełni się jego tabela; występuje rzadko.

ENOTSOCK
Linux 88macOS 38

Socket operation on non-socket

Użyto operacji na gnieździe na deskryptorze, który nie jest gniazdem.

EDESTADDRREQ
Linux 89macOS 39

Destination address required

Brak adresu docelowego: wysłano dane przez gniazdo bezpołączeniowe bez wskazania, dokąd.

EMSGSIZE
Linux 90macOS 40

Message too long

Komunikat jest za duży dla gniazda, np. datagram UDP większy niż maksimum lub niż MTU, gdy fragmentacja jest niedozwolona.

EPROTOTYPE
Linux 91macOS 41

Protocol wrong type for socket

Protokół nie odpowiada typowi gniazda.

ENOPROTOOPT
Linux 92macOS 42

Protocol not available

Żądana opcja gniazda lub protokół nie jest dostępny, np. opcja setsockopt, której jądro nie zna.

EPROTONOSUPPORT
Linux 93macOS 43

Protocol not supported

Protokół nie jest obsługiwany, np. dlatego, że jego moduł jądra nie jest załadowany.

ESOCKTNOSUPPORT
Linux 94macOS 44

Socket type not supported

Typ gniazda nie jest obsługiwany w tej rodzinie adresów.

EOPNOTSUPP
Linux 95macOS 102

Operation not supported

macOS: Operation not supported on socket

Operacja nie jest obsługiwana przez gniazdo lub obiekt. W Linuksie ma tę samą wartość co ENOTSUP, a wiele systemów plików zwraca go dla funkcji, których nie implementuje, np. fallocate lub atrybutów rozszerzonych.

ENOTSUP
Linux 95macOS 45

Operation not supported

Operacja nie jest obsługiwana. W Linuksie ma tę samą wartość co EOPNOTSUPP (95); w macOS to różne kody.

EPFNOSUPPORT
Linux 96macOS 46

Protocol family not supported

Rodzina protokołów nie jest obsługiwana.

EAFNOSUPPORT
Linux 97macOS 47

Address family not supported by protocol

macOS: Address family not supported by protocol family

Rodzina adresów nie jest obsługiwana; typowe przy użyciu IPv6 w systemie lub kontenerze, w którym jest wyłączone.

EADDRINUSE
Linux 98macOS 48

Address already in use

Adres i port są już w użyciu: inny proces nasłuchuje na tym porcie lub poprzednie połączenie jest wciąż w stanie TIME_WAIT. Znajdź proces za pomocą ss -ltnp lub lsof -i :PORT albo użyj SO_REUSEADDR.

EADDRNOTAVAIL
Linux 99macOS 49

Cannot assign requested address

macOS: Can't assign requested address

Nie można przypisać żądanego adresu: IP nie należy do żadnego interfejsu komputera albo wyczerpały się porty efemeryczne dla połączeń wychodzących.

ENETDOWN
Linux 100macOS 50

Network is down

Interfejs sieciowy nie działa.

ENETUNREACH
Linux 101macOS 51

Network is unreachable

Sieć docelowa jest nieosiągalna, bo nie ma do niej żadnej trasy. Sprawdź tablicę routingu i bramę; zdarza się też przy łączeniu przez IPv6 bez łączności IPv6.

ENETRESET
Linux 102macOS 52

Network dropped connection on reset

Sieć zresetowała połączenie, np. gdy zawiedzie keepalive.

ECONNABORTED
Linux 103macOS 53

Software caused connection abort

Połączenie zostało przerwane po stronie lokalnej, np. dlatego, że klient je zamknął, zanim serwer przyjął je przez accept.

ECONNRESET
Linux 104macOS 54

Connection reset by peer

Druga strona gwałtownie zerwała połączenie pakietem RST („Connection reset by peer”): zdalny proces się zamknął, zapora lub load balancer zerwał nieaktywne połączenie albo wysłano dane, których druga strona się nie spodziewała.

ENOBUFS
Linux 105macOS 55

No buffer space available

W jądrze brakuje miejsca w buforach na operację sieciową; zwykle pojawia się przy dużym ruchu lub pełnych kolejkach gniazd.

EISCONN
Linux 106macOS 56

Transport endpoint is already connected

macOS: Socket is already connected

Gniazdo jest już połączone.

ENOTCONN
Linux 107macOS 57

Transport endpoint is not connected

macOS: Socket is not connected

Gniazdo nie jest połączone: próbowano wysyłać lub odbierać przed połączeniem albo połączenie zostało już zamknięte. W punkcie montowania FUSE pojawia się jako „Transport endpoint is not connected”, gdy jego proces zakończył działanie; naprawia się to, odmontowując go za pomocą fusermount -u.

ESHUTDOWN
Linux 108macOS 58

Cannot send after transport endpoint shutdown

macOS: Can't send after socket shutdown

Nie można wysyłać po zamknięciu tego kierunku gniazda za pomocą shutdown.

ETOOMANYREFS
Linux 109macOS 59

Too many references: cannot splice

macOS: Too many references: can't splice

Zbyt wiele odwołań; w Linuksie przy przekazywaniu zbyt wielu zagnieżdżonych deskryptorów przez gniazdo uniksowe.

ETIMEDOUT
Linux 110macOS 60

Connection timed out

macOS: Operation timed out

Upłynął limit czasu połączenia, bo cel nie odpowiedział. Zwykle przyczyną jest zapora, która po cichu odrzuca pakiety, wyłączony host lub trasa, która nie prowadzi do celu.

ECONNREFUSED
Linux 111macOS 61

Connection refused

Cel odrzucił połączenie: komputer odpowiada, ale nikt nie nasłuchuje na tym porcie lub zapora odpowiada odmową. Sprawdź, czy usługa działa i nasłuchuje na właściwym interfejsie, a nie tylko na 127.0.0.1.

EHOSTDOWN
Linux 112macOS 64

Host is down

Host docelowy nie działa.

EHOSTUNREACH
Linux 113macOS 65

No route to host

Brak trasy do hosta: nie odpowiada na ARP w sieci lokalnej albo router lub zapora zgłasza, że jest nieosiągalny.

EALREADY
Linux 114macOS 37

Operation already in progress

Na gnieździe trwa już operacja, np. nieblokujący connect, który jeszcze się nie zakończył.

EINPROGRESS
Linux 115macOS 36

Operation now in progress

Operacja jest w toku: nieblokujący connect się rozpoczął i zakończy się później. To nie błąd; trzeba poczekać za pomocą poll lub select.

ESTALE
Linux 116macOS 70

Stale file handle

macOS: Stale NFS file handle

Uchwyt pliku jest nieaktualny: w NFS plik lub katalog został usunięty lub zastąpiony na serwerze. Rozwiązaniem jest ponowne otwarcie ścieżki lub ponowne zamontowanie.

EUCLEAN
Linux 117macOS —

Structure needs cleaning

Struktura wymaga wyczyszczenia: system plików wykrył uszkodzenie (w ext4 i XFS z aliasem EFSCORRUPTED). Odmontuj go i uruchom fsck lub xfs_repair.

Ta sama wartość:EFSCORRUPTED

ENOTNAM
Linux 118macOS —

Not a XENIX named type file

To nie jest plik nazwany XENIX. To przestarzały, nieużywany kod.

ENAVAIL
Linux 119macOS —

No XENIX semaphores available

Brak dostępnych semaforów XENIX. To przestarzały, nieużywany kod.

EISNAM
Linux 120macOS —

Is a named type file

To plik nazwany XENIX. To przestarzały, nieużywany kod.

EREMOTEIO
Linux 121macOS —

Remote I/O error

Zdalny błąd wejścia/wyjścia, np. urządzenia I2C lub zdalnego dysku, który nie odpowiedział.

EDQUOT
Linux 122macOS 69

Disk quota exceeded

macOS: Disc quota exceeded

Przekroczono przydział dyskowy użytkownika lub grupy.

ENOMEDIUM
Linux 123macOS —

No medium found

W urządzeniu nie ma nośnika, np. napęd bez płyty lub pusty czytnik kart.

EMEDIUMTYPE
Linux 124macOS —

Wrong medium type

Nieprawidłowy typ nośnika.

ECANCELED
Linux 125macOS 89

Operation canceled

Operacja została anulowana, np. asynchroniczne wejście/wyjście lub oczekiwanie io_uring.

ENOKEY
Linux 126macOS —

Required key not available

Wymaganego klucza nie ma w keyringu jądra. Pojawia się przy szyfrowanych systemach plików, takich jak fscrypt lub eCryptfs, gdy klucz nie został załadowany.

EKEYEXPIRED
Linux 127macOS —

Key has expired

Klucz wygasł. PAM i Kerberos używają go też, gdy wygasło hasło lub bilet.

EKEYREVOKED
Linux 128macOS —

Key has been revoked

Klucz został unieważniony.

EKEYREJECTED
Linux 129macOS —

Key was rejected by service

Usługa odrzuciła klucz.

EOWNERDEAD
Linux 130macOS 105

Owner died

macOS: Previous owner died

Właściciel odpornego mutexu zakończył działanie, nie zwalniając go. Nowy właściciel musi przywrócić spójność chronionego stanu i wywołać pthread_mutex_consistent.

ENOTRECOVERABLE
Linux 131macOS 104

State not recoverable

Stanu chronionego przez odporny mutex nie da się odzyskać, ponieważ poprzedni właściciel zakończył działanie i nikt nie oznaczył stanu jako spójnego.

ERFKILL
Linux 132macOS —

Operation not possible due to RF-kill

Operacja nie jest możliwa, bo radio Wi-Fi lub Bluetooth jest zablokowane przez RF-kill. Sprawdź rfkill list, fizyczny przełącznik lub klawisz trybu samolotowego.

EHWPOISON
Linux 133macOS —

Memory page has hardware error

Strona pamięci ma błąd sprzętowy i jądro oznaczyło ją jako zatrutą.

EFTYPE
Linux 134macOS 79

Inappropriate file type or format

Typ pliku jest nieodpowiedni dla operacji. W macOS i BSD istnieje od dawna; do Linuksa dodano go niedawno.

EPROCLIM
Linux —macOS 67

Too many processes

Zbyt wiele procesów. BSD definiuje go dla limitu procesów, choć w praktyce fork zwraca EAGAIN.

EBADRPC
Linux —macOS 72

RPC struct is bad

Nieprawidłowa struktura RPC (Sun RPC, używane przez NFS).

ERPCMISMATCH
Linux —macOS 73

RPC version wrong

Niezgodna wersja RPC (Sun RPC, używane przez NFS).

EPROGUNAVAIL
Linux —macOS 74

RPC program not available

macOS: RPC prog. not avail

Program RPC jest niedostępny na serwerze.

EPROGMISMATCH
Linux —macOS 75

RPC program version wrong

macOS: Program version wrong

Niezgodna wersja programu RPC.

EPROCUNAVAIL
Linux —macOS 76

RPC bad procedure for program

macOS: Bad procedure for program

Procedura nie istnieje w programie RPC.

EAUTH
Linux —macOS 80

Authentication error

Błąd uwierzytelniania, np. przy montowaniu zasobu NFS.

ENEEDAUTH
Linux —macOS 81

Need authenticator

Operacja wymaga uwierzytelniacza.

EPWROFF
Linux —macOS 82

Device power is off

Urządzenie jest wyłączone.

EDEVERR
Linux —macOS 83

Device error, e.g. paper out

Błąd urządzenia, np. drukarka bez papieru.

EBADEXEC
Linux —macOS 85

Bad executable

Plik wykonywalny jest nieprawidłowy.

EBADARCH
Linux —macOS 86

Bad CPU type in executable

Plik wykonywalny jest przeznaczony dla innego typu procesora, np. plik binarny tylko dla x86_64 na Macu z Apple Silicon bez Rosetta 2 albo plik ARM na Macu z procesorem Intel.

ESHLIBVERS
Linux —macOS 87

Shared library version mismatch

Niezgodna wersja biblioteki współdzielonej.

EBADMACHO
Linux —macOS 88

Malformed Macho file

Plik Mach-O jest źle sformułowany lub uszkodzony.

ENOATTR
Linux —macOS 93

Attribute not found

Atrybut rozszerzony nie istnieje; odpowiada linuksowemu ENODATA. Pojawia się przy xattr, np. przy usuwaniu com.apple.quarantine z pliku, który go nie ma.

ENOPOLICY
Linux —macOS 103

No such policy registered

W MAC Framework nie ma zarejestrowanej polityki o tej nazwie.

EQFULL
Linux —macOS 106

Interface output queue is full

Kolejka wyjściowa interfejsu sieciowego jest pełna.

ENOTCAPABLE
Linux —macOS 107

Capabilities insufficient

Niewystarczające uprawnienia (capabilities): zwracają go wywołania ograniczone przez piaskownicę.

SIGSygnały33
SIGHUP
Linux 1macOS 1

Hangup

Terminal sterujący procesem został zamknięty lub sesja SSH została przerwana. Wiele demonów, takich jak nginx, sshd czy rsyslog, traktuje go jako polecenie ponownego wczytania konfiguracji; nohup, tmux i screen zapobiegają temu, by zamykał procesy po wyjściu.

Kończy proces
SIGINT
Linux 2macOS 2

Interrupt

Przerwanie z klawiatury za pomocą Ctrl+C. Program może go przechwycić, by zakończyć działanie w uporządkowany sposób. Kod wyjścia 130.

Kończy proces
SIGQUIT
Linux 3macOS 3

Quit

Wyjście z klawiatury za pomocą Ctrl+\. Kończy proces ze zrzutem pamięci; JVM natomiast używa go do wypisania stanu wątków.

Kończy proces ze zrzutem pamięci
SIGILL
Linux 4macOS 4

Illegal instruction

Procesor napotkał niedozwoloną instrukcję: plik binarny skompilowany dla nowszego procesora (np. z AVX2 lub AVX-512 na procesorze, który ich nie ma), uszkodzony kod lub skok do danych.

Kończy proces ze zrzutem pamięci
SIGTRAP
Linux 5macOS 5

Trace/breakpoint trap

Pułapka debugowania: debugery używają go do punktów przerwania. Jeśli pojawia się bez debugera, zwykle jest to błąd wykryty przez sam program, np. przez kontrole Swifta w macOS.

Kończy proces ze zrzutem pamięci
SIGABRT
Linux 6macOS 6

Aborted

Proces wywołał abort(): nieudana asercja, nieprzechwycony wyjątek C++ lub uszkodzenie sterty wykryte przez bibliotekę C („double free or corruption”). Kod wyjścia 134.

Kończy proces ze zrzutem pamięci

Ta sama wartość:SIGIOT

SIGBUS
Linux 7macOS 10

Bus error

Błąd magistrali: dostęp do niewyrównanej pamięci w niektórych architekturach lub do części pliku zmapowanego przez mmap, która już nie istnieje, bo plik został obcięty. Zdarza się też, gdy zapełni się /dev/shm.

Kończy proces ze zrzutem pamięci
SIGFPE
Linux 8macOS 8

Floating point exception

Wyjątek arytmetyczny. Wbrew nazwie najczęstszą przyczyną jest dzielenie całkowite przez zero.

Kończy proces ze zrzutem pamięci
SIGKILL
Linux 9macOS 9

Killed

Natychmiast kończy proces: nie można go przechwycić, zablokować ani zignorować. Wysyłają go kill -9, OOM killer jądra po wyczerpaniu pamięci oraz Docker lub Kubernetes, gdy kontener przekroczy limit pamięci (OOMKilled) lub nie zakończy się na czas po SIGTERM. Kod wyjścia 137.

Kończy procesNie można przechwycić
SIGUSR1
Linux 10macOS 30

User defined signal 1

Wolny sygnał, któremu każda aplikacja nadaje własne zastosowanie; na przykład dd wypisuje postęp, a nginx ponownie otwiera logi.

Kończy proces
SIGSEGV
Linux 11macOS 11

Segmentation fault

Naruszenie ochrony pamięci („Segmentation fault”): dostęp do nieprawidłowej pamięci, np. dereferencja wskaźnika null, wyjście poza tablicę lub przepełnienie stosu przez nieskończoną rekurencję. Kod wyjścia 139.

Kończy proces ze zrzutem pamięci
SIGUSR2
Linux 12macOS 31

User defined signal 2

Drugi wolny sygnał, któremu każda aplikacja nadaje własne zastosowanie.

Kończy proces
SIGPIPE
Linux 13macOS 13

Broken pipe

Zapis do potoku lub gniazda bez czytelnika. To normalne w cmd | head, gdzie czytelnik kończy wcześniej; serwery zwykle go ignorują i obsługują błąd EPIPE. Kod wyjścia 141.

Kończy proces
SIGALRM
Linux 14macOS 14

Alarm clock

Upłynął czas timera ustawionego przez alarm lub setitimer.

Kończy proces
SIGTERM
Linux 15macOS 15

Terminated

Prośba o uporządkowane zakończenie. To domyślny sygnał kill, systemctl stop, docker stop oraz Kubernetesa przy usuwaniu poda; proces powinien zamknąć połączenia i zakończyć działanie. Kod wyjścia 143.

Kończy proces
SIGSTKFLT
Linux 16macOS —

Stack fault

Błąd stosu koprocesora. Nieużywany we współczesnym Linuksie.

Kończy proces
SIGCHLD
Linux 17macOS 20

Child exited

Proces potomny zakończył się, zatrzymał lub wznowił działanie. Rodzic musi go odebrać za pomocą wait; w przeciwnym razie potomek pozostaje zombie.

Jest ignorowany

Ta sama wartość:SIGCLD

SIGCONT
Linux 18macOS 19

Continued

Wznawia zatrzymany proces, tak jak robią to fg i bg w powłoce.

Wznawia proces
SIGSTOP
Linux 19macOS 17

Stopped (signal)

Zatrzymuje proces; nie można go przechwycić ani zignorować. Proces wznawia się sygnałem SIGCONT.

Zatrzymuje procesNie można przechwycić
SIGTSTP
Linux 20macOS 18

Stopped

Zatrzymanie z terminala za pomocą Ctrl+Z. W przeciwieństwie do SIGSTOP program może go przechwycić.

Zatrzymuje proces
SIGTTIN
Linux 21macOS 21

Stopped (tty input)

Proces działający w tle próbował czytać z terminala.

Zatrzymuje proces
SIGTTOU
Linux 22macOS 22

Stopped (tty output)

Proces działający w tle próbował pisać do terminala przy włączonym stty tostop lub zmienić jego konfigurację.

Zatrzymuje proces
SIGURG
Linux 23macOS 16

Urgent I/O condition

Do gniazda dotarły dane pilne (poza pasmem). Go używa go wewnętrznie do przerywania gorutyn.

Jest ignorowany
SIGXCPU
Linux 24macOS 24

CPU time limit exceeded

Przekroczono limit czasu procesora dla procesu (ulimit -t).

Kończy proces ze zrzutem pamięci
SIGXFSZ
Linux 25macOS 25

File size limit exceeded

Przekroczono maksymalny rozmiar pliku dozwolony dla procesu (ulimit -f).

Kończy proces ze zrzutem pamięci
SIGVTALRM
Linux 26macOS 26

Virtual timer expired

Upłynął czas timera wirtualnego, który liczy tylko czas procesora zużyty przez proces.

Kończy proces
SIGPROF
Linux 27macOS 27

Profiling timer expired

Upłynął czas timera profilowania, używanego przez profilery.

Kończy proces
SIGWINCH
Linux 28macOS 28

Window changed

Zmienił się rozmiar okna terminala; programy pełnoekranowe używają go, by przerysować interfejs.

Jest ignorowany
SIGIO
Linux 29macOS 23

input/output possible signal

Na deskryptorze skonfigurowanym z O_ASYNC dostępne jest wejście/wyjście. W Linuksie SIGPOLL to ten sam sygnał.

Kończy proces

Ta sama wartość:SIGPOLL

SIGPWR
Linux 30macOS —

Power failure

Awaria zasilania, którą oprogramowanie UPS zgłasza systemowi init.

Kończy proces
SIGSYS
Linux 31macOS 12

Bad system call

Nieprawidłowe wywołanie systemowe. Obecnie zwykłą przyczyną jest filtr seccomp, który je blokuje, np. w kontenerach.

Kończy proces ze zrzutem pamięci
SIGEMT
Linux —macOS 7

EMT trap

Pułapka emulacji (EMT). Istnieje w macOS i BSD, ale nie w Linuksie na x86 ani ARM.

Kończy proces ze zrzutem pamięci
SIGINFO
Linux —macOS 29

Information request

Żądanie informacji za pomocą Ctrl+T w terminalu macOS i BSD; wiele poleceń odpowiada, pokazując postęp.

Jest ignorowany
$?Kody wyjścia24
0EXIT_SUCCESS

Polecenie zakończyło się pomyślnie. To jedyny kod oznaczający sukces: każda inna wartość wskazuje błąd.

C
1EXIT_FAILURE

Błąd ogólny; każdy program sam decyduje, co oznacza. Szczegóły zwykle są w tym, co polecenie wypisało na stderr. grep i diff używają go w innym znaczeniu: „nie znaleziono dopasowań” lub „pliki się różnią”.

C
2Misuse of shell builtins

Nieprawidłowe użycie wbudowanego polecenia powłoki lub błąd składni w skrypcie. Wiele programów używa go też dla nieprawidłowych opcji, a grep dla rzeczywistych błędów.

Bash
64EX_USAGE

Polecenie zostało użyte nieprawidłowo: brakuje argumentów, jest ich za dużo lub któraś opcja jest błędna.

sysexits.h
65EX_DATAERR

Dane wejściowe mają nieprawidłowy format.

sysexits.h
66EX_NOINPUT

Plik wejściowy nie istnieje lub nie można go odczytać.

sysexits.h
67EX_NOUSER

Wskazany użytkownik nie istnieje; używają go głównie programy pocztowe.

sysexits.h
68EX_NOHOST

Nazwa hosta nie istnieje.

sysexits.h
69EX_UNAVAILABLE

Wymagana usługa jest niedostępna lub zawiodło coś, co nie pasuje do innej kategorii.

sysexits.h
70EX_SOFTWARE

Wewnętrzny błąd programu.

sysexits.h
71EX_OSERR

Błąd systemu operacyjnego, np. niemożność wykonania fork lub utworzenia potoku.

sysexits.h
72EX_OSFILE

Brakuje pliku systemowego, takiego jak /etc/passwd, lub zawiera on błąd.

sysexits.h
73EX_CANTCREAT

Nie można utworzyć pliku wyjściowego.

sysexits.h
74EX_IOERR

Błąd wejścia/wyjścia przy odczycie lub zapisie pliku.

sysexits.h
75EX_TEMPFAIL

Błąd tymczasowy: warto spróbować ponownie później. Serwery pocztowe używają go, by zostawić wiadomość w kolejce.

sysexits.h
76EX_PROTOCOL

System zdalny odpowiedział czymś, co nie jest zgodne z protokołem.

sysexits.h
77EX_NOPERM

Niewystarczające uprawnienia do wykonania operacji.

sysexits.h
78EX_CONFIG

W konfiguracji jest błąd.

sysexits.h
124Timed out

Polecenie timeout zakończyło je, bo przekroczyło wskazany czas.

GNU timeout
125Container failed to run

Zawiodło samo docker run, zanim uruchomiło kontener, np. z powodu błędnej opcji lub błędu demona. GNU timeout również go zwraca, gdy to on sam zawodzi.

Docker
126Command invoked cannot execute

Plik istnieje, ale nie można go uruchomić: brakuje uprawnienia do wykonywania, jest katalogiem lub plikiem binarnym innej architektury. W Dockerze polecenie kontenera nie jest wykonywalne.

POSIX
127Command not found

Nie znaleziono polecenia: nie jest zainstalowane, nie ma go w PATH lub jego nazwa jest błędnie zapisana. W skryptach pojawia się też, gdy brakuje interpretera z wiersza #!; w Dockerze – gdy polecenie kontenera nie istnieje w obrazie.

POSIX
128Fatal error

Kody większe niż 128 oznaczają, że proces zakończył sygnał, ale 128 nie odpowiada żadnemu. Git używa go dla wszystkich swoich błędów krytycznych („fatal: …”), np. nieistniejącego repozytorium lub błędu uwierzytelniania przy klonowaniu.

Git
255Exit status out of range

Kod wyjścia był poza zakresem: exit -1 dociera jako 255, bo zachowywanych jest tylko 8 bitów. ssh również go zwraca, gdy zawiedzie połączenie lub uwierzytelnianie, aby odróżnić go od kodu zdalnego polecenia.

POSIX

Wartości dla Linuksa dotyczą x86, x86-64 i ARM; Alpha, MIPS, SPARC i PA-RISC numerują niektóre errno i sygnały inaczej. Komunikaty po angielsku to te, które wyświetlają strerror i strsignal w glibc, a także w macOS, gdy są inne. Kody wyjścia większe niż 128 interpretuje się jako 128 plus numer sygnału, zgodnie z konwencją bash, Dockera i Kubernetesa.

Jak to działa

Gdy wywołanie systemowe w Linuksie się nie powiedzie, zwraca -1 i zapisuje w zmiennej errno liczbę wskazującą przyczynę: 2 to ENOENT, plik nie istnieje; 13 to EACCES, odmowa dostępu. strerror zamienia tę liczbę na tekst widoczny na ekranie, np. „No such file or directory”. Python pokazuje go jako [Errno 13], Node.js jako code: 'ECONNREFUSED', a Go, Rust czy Java – tym samym tekstem. Numery od 1 do 34 pochodzą z oryginalnego Uniksa i są takie same we wszystkich systemach; kolejne każdy system ponumerował po swojemu, więc ECONNREFUSED to 111 w Linuksie i 61 w macOS. Nazwa jest przenośna; numer nie.

Sygnały to powiadomienia, które jądro lub inny proces wysyła do procesu: SIGINT po naciśnięciu Ctrl+C, SIGTERM, by poprosić go o zakończenie, SIGKILL, by zakończyć go bez pytania, SIGSEGV, gdy odwołuje się do nieprawidłowej pamięci. Każdy ma domyślną akcję, a prawie wszystkie można przechwycić, by zrobić coś innego. Gdy sygnał zabije proces, powłoka zgłasza jako kod wyjścia 128 plus numer sygnału: 137 to SIGKILL (9), 139 to SIGSEGV (11), a 143 to SIGTERM (15). Docker i Kubernetes stosują tę samą konwencję.

Kod wyjścia to liczba, którą program zostawia po zakończeniu: 0 oznacza sukces, a każda inna wartość błąd. Zachowywanych jest tylko 8 bitów, więc mieści się w zakresie od 0 do 255. Konwencji jest niewiele: 126 i 127 używa powłoka, gdy nie może uruchomić lub nie znajduje polecenia, od 64 do 78 definiuje sysexits.h z BSD, a resztę ustala każdy program, np. grep, który zwraca 1, gdy nic nie znajdzie.

Przykłady

Last State: Terminated · Reason: OOMKilled · Exit Code: 137137 = 128 + 9 · SIGKILLKontener przekroczył limit pamięci i jądro zabiło go sygnałem SIGKILL. Trzeba podnieść limit w resources.limits.memory lub ustalić, dlaczego proces zużywa tak dużo; ponowne uruchomienie tego nie naprawi.
Error: connect ECONNREFUSED 127.0.0.1:5432ECONNREFUSED · Linux 111 · macOS 61 · Connection refusedNode.js nie mógł połączyć się z PostgreSQL, bo nikt nie nasłuchuje na porcie 5432. Jeśli aplikacja działa w kontenerze, 127.0.0.1 to sam kontener, a nie komputer: trzeba użyć nazwy usługi bazy danych.
OSError: [Errno 48] Address already in useEADDRINUSE · Linux 98 · macOS 4848 zdradza, że program działa w macOS: w Linuksie ten sam błąd ma numer 98. W obu przypadkach port jest już używany przez inny proces; lsof -i :PORT pokaże który.

Przypadki użycia

  • Zrozumieć błąd aplikacji w Pythonie, Node.js, Go lub C, która pokazuje tylko numer lub nazwę errno.
  • Ustalić na podstawie kodu wyjścia, dlaczego zamknął się kontener Dockera lub restartuje się pod Kubernetesa.
  • Zamienić numer errno z macOS na właściwą nazwę, ponieważ od 35 numery nie pokrywają się z linuksowymi.
  • Zinterpretować kod wyjścia skryptu, zadania cron lub joba CI, który zakończył się niepowodzeniem.
  • Wybrać, jaki sygnał wysłać za pomocą kill, i wiedzieć, co zrobi proces, jeśli go nie przechwyci.
  • Napisać przenośną obsługę błędów, która porównuje po nazwie, a nie po numerze.

Najczęstsze pytania

Co oznacza exit code 137?

Że proces został zakończony sygnałem 9, SIGKILL (128 + 9). Najczęstszą przyczyną jest pamięć: kontener przekroczył swój limit, co Kubernetes zgłasza jako OOMKilled, albo OOM killer jądra wybrał ten proces, co zostaje w dmesg jako „Out of memory: Killed process”. Zdarza się też przy docker kill lub gdy proces nie zakończy się w wyznaczonym czasie po SIGTERM: 10 sekund w docker stop i 30 w Kubernetesie.

Jaka jest różnica między SIGTERM a SIGKILL?

SIGTERM prosi proces o zakończenie, a proces może go przechwycić, by zamknąć połączenia, zapisać dane i wyjść. Przy SIGKILL to jądro natychmiast kończy proces, a ten nie może nic zrobić. Właściwie jest wysłać SIGTERM, odczekać kilka sekund i sięgnąć po SIGKILL tylko wtedy, gdy proces nadal działa – tak robią systemd, docker stop i Kubernetes.

Dlaczego to samo errno ma w macOS inny numer?

Ponieważ POSIX definiuje nazwy, ale nie numery. Od 1 do 34 wszystkie systemy odziedziczyły numery z oryginalnego Uniksa; potem BSD, z którego wywodzi się macOS, i System V, za którym poszedł Linux, numerowały je osobno. Dlatego zawsze warto porównywać po nazwie – za pomocą errno.ECONNREFUSED w Pythonie, err.code w Node.js lub stałej w C – a nie po numerze.

Jaka jest różnica między EACCES a EPERM?

EACCES („Permission denied”) oznacza, że nie pozwalają na to uprawnienia pliku lub któregoś katalogu w ścieżce albo blokuje to ACL lub SELinux: rozwiązuje się to za pomocą chmod, chown lub odpowiedniej polityki. EPERM („Operation not permitted”) oznacza, że sama operacja wymaga przywilejów niezależnie od uprawnień, np. zmiana właściciela pliku lub zabicie procesu innego użytkownika: potrzebny jest root, capability albo usunięcie atrybutu, takiego jak niezmienność.

Jak sprawdzić kod wyjścia polecenia lub kontenera?

W bash i zsh echo $? pokazuje kod ostatniego polecenia; w PowerShell – $LASTEXITCODE. W Dockerze docker ps -a pokazuje go w kolumnie STATUS, np. „Exited (137)”. W Kubernetesie kubectl describe pod pokazuje go w „Last State: Terminated” wraz z przyczyną, np. OOMKilled lub Error.