Linux-foutcodes
Zoek op wat een errno als ECONNREFUSED of „[Errno 13]”, een signaal als SIGKILL of een exitcode als 137 betekent, met de waarden van Linux en macOS. Plak het volledige bericht van het programma, van Docker of van Kubernetes en het hulpprogramma haalt de code eruit.
Voorbeelden:

208 van 208 codes

errnoFouten van systeemaanroepen151
EPERM
Linux 1macOS 1

Operation not permitted

De bewerking vereist rechten die het proces niet heeft, zoals de eigenaar van een bestand wijzigen, een signaal sturen naar een proces van een andere gebruiker of een onveranderbaar bestand (chattr +i) aanpassen. Anders dan bij EACCES los je dit niet op door de bestandsrechten te wijzigen: je hebt root of de bijbehorende capability nodig.

ENOENT
Linux 2macOS 2

No such file or directory

Het bestand of de map bestaat niet. Dit verschijnt ook als een tussenliggende map in het pad ontbreekt, als een symbolische link naar een doel wijst dat niet bestaat of als de interpreter uit de #!-regel van een script niet is geïnstalleerd.

ESRCH
Linux 3macOS 3

No such process

Er bestaat geen proces, procesgroep of thread met die identificatie; bijvoorbeeld bij kill op een PID die al beëindigd is.

EINTR
Linux 4macOS 4

Interrupted system call

Een signaal heeft de systeemaanroep onderbroken voordat die klaar was. Het is geen echte fout: het programma moet de aanroep opnieuw proberen, of de signaalhandler installeren met SA_RESTART.

EIO
Linux 5macOS 5

Input/output error

Invoer-/uitvoerfout op laag niveau, meestal bij het lezen van of schrijven naar het apparaat. Bij schijven wijst dit vaak op beschadigde sectoren of een defecte kabel: controleer dmesg en de SMART-status. Het verschijnt ook bij het schrijven naar een terminal die al gesloten is.

ENXIO
Linux 6macOS 6

No such device or address

macOS: Device not configured

Het apparaat of het adres bestaat niet: het apparaatbestand is er, maar er zit geen hardware achter, of een FIFO is met O_NONBLOCK geopend om te schrijven zonder dat er een lezer is.

E2BIG
Linux 7macOS 7

Argument list too long

De lijst met argumenten en omgevingsvariabelen die aan exec wordt doorgegeven, is te groot. Dit is de klassieke „Argument list too long” bij een wildcard die uitklapt tot duizenden bestanden; gebruik find -exec of xargs.

ENOEXEC
Linux 8macOS 8

Exec format error

Het bestand heeft geen herkend uitvoerbaar formaat: het is een binary voor een andere architectuur, het is beschadigd of het is een script zonder #!-regel.

EBADF
Linux 9macOS 9

Bad file descriptor

De bestandsdescriptor is ongeldig, is al gesloten of is geopend in een modus die de bewerking niet toestaat, zoals schrijven naar een descriptor die alleen voor lezen is geopend.

ECHILD
Linux 10macOS 10

No child processes

Het proces heeft geen kindprocessen om met wait of waitpid op te wachten, vaak omdat SIGCHLD wordt genegeerd en de kindprocessen automatisch worden opgeruimd.

EAGAIN
Linux 11macOS 35

Resource temporarily unavailable

De bron is tijdelijk niet beschikbaar en het is zinvol het opnieuw te proberen. Bij niet-blokkerende bewerkingen betekent het dat er nog geen gegevens of ruimte zijn; bij fork dat de limiet voor processen of threads is bereikt (ulimit -u of pids.max van de cgroup).

Zelfde waarde:EWOULDBLOCK

ENOMEM
Linux 12macOS 12

Cannot allocate memory

Er is niet genoeg geheugen voor de bewerking, of een geheugenlimiet van het proces is overschreden. Bij fork of mmap kan het komen door het overcommit-beleid, de limiet van de cgroup of een gebrek aan adresruimte.

EACCES
Linux 13macOS 13

Permission denied

Toegang geweigerd door de rechten van het bestand of van een map in het pad (op elk ervan is uitvoerrecht nodig), door een ACL, door SELinux of AppArmor, of door een mount met noexec. bind geeft dit ook terug bij gebruik van een poort onder 1024 zonder rechten.

EFAULT
Linux 14macOS 14

Bad address

Er is aan een systeemaanroep een pointer naar een ongeldig geheugenadres doorgegeven. Dit wijst op een bug in het programma.

ENOTBLK
Linux 15macOS 15

Block device required

De bewerking heeft een blokapparaat nodig, zoals een schijf, en kreeg een ander type bestand; bijvoorbeeld bij het mounten van een gewoon bestand zonder -o loop.

EBUSY
Linux 16macOS 16

Device or resource busy

macOS: Device / Resource busy

Het apparaat of de bron is in gebruik. Typisch bij het ontkoppelen van een bestandssysteem met open bestanden of met een terminal die zich erin bevindt; lsof of fuser laten zien welke processen het gebruiken.

EEXIST
Linux 17macOS 17

File exists

Er bestaat al een bestand, een map of een ander object met die naam, bijvoorbeeld bij het aanmaken met O_EXCL, bij mkdir zonder -p of bij het maken van een link waarvan het doel al bestaat.

EXDEV
Linux 18macOS 18

Invalid cross-device link

macOS: Cross-device link

Tussen verschillende bestandssystemen kun je geen harde link maken en geen bestand hernoemen. mv lost dit op door te kopiëren en te verwijderen; programma's die rename() gebruiken, moeten hetzelfde doen.

ENODEV
Linux 19macOS 19

No such device

macOS: Operation not supported by device

Het apparaat bestaat niet of ondersteunt de bewerking niet; bijvoorbeeld bij het mounten van een bestandssysteemtype waarvan de kernelmodule niet geladen is.

ENOTDIR
Linux 20macOS 20

Not a directory

Een onderdeel van het pad dat een map zou moeten zijn, is een bestand, of er werd een map gevraagd (O_DIRECTORY) en het is er geen.

EISDIR
Linux 21macOS 21

Is a directory

Er werd een bestandsbewerking op een map geprobeerd, zoals die openen om te schrijven.

EINVAL
Linux 22macOS 22

Invalid argument

Een argument is ongeldig voor de aanroep: een waarde buiten het bereik, een onverenigbare combinatie van opties of een bewerking die het object niet ondersteunt. De fout is generiek: de man-pagina van de aanroep somt de concrete gevallen op.

ENFILE
Linux 23macOS 23

Too many open files in system

De systeembrede tabel met geopende bestanden is vol. De limiet stel je in met fs.file-max in sysctl.

EMFILE
Linux 24macOS 24

Too many open files

Het proces heeft zijn limiet voor open descriptors bereikt („Too many open files”). Verhoog de limiet met ulimit -n of met LimitNOFILE in systemd, en controleer of het programma geen bestanden of sockets open laat.

ENOTTY
Linux 25macOS 25

Inappropriate ioctl for device

Er werd een terminalbewerking (ioctl) gevraagd op iets wat geen terminal is, bijvoorbeeld wanneer de uitvoer van een interactief programma naar een bestand of een pipe wordt omgeleid.

ETXTBSY
Linux 26macOS 26

Text file busy

Het uitvoerbare bestand is in gebruik: je kunt niet naar een binary schrijven terwijl die draait, en ook geen binary uitvoeren die nog open staat om te schrijven. Om het bij te werken schrijf je het best een nieuw bestand en hernoem je dat.

EFBIG
Linux 27macOS 27

File too large

Het bestand overschrijdt de maximale grootte die het bestandssysteem toestaat (4 GB bij FAT32) of de limiet RLIMIT_FSIZE van het proces.

ENOSPC
Linux 28macOS 28

No space left on device

Er is geen ruimte meer op het apparaat. Als df vrije ruimte toont, controleer dan de inodes met df -i. inotify geeft dit ook terug als fs.inotify.max_user_watches is uitgeput.

ESPIPE
Linux 29macOS 29

Illegal seek

lseek is niet mogelijk op een pipe, een FIFO of een socket, omdat die geen positie hebben.

EROFS
Linux 30macOS 30

Read-only file system

Het bestandssysteem is alleen-lezen gemount. Als het alleen-lezen werd zonder dat iemand daarom vroeg, heeft de kernel fouten gedetecteerd: controleer dmesg en voer fsck uit.

EMLINK
Linux 31macOS 31

Too many links

Het maximale aantal harde links naar een bestand is overschreden, of bij sommige bestandssystemen het maximale aantal submappen van een map.

EPIPE
Linux 32macOS 32

Broken pipe

Er werd geschreven naar een pipe of een socket waarvan de andere kant al gesloten is („Broken pipe”). Naast de fout ontvangt het proces SIGPIPE; dit is normaal als de lezer eerder stopt, zoals bij cmd | head.

EDOM
Linux 33macOS 33

Numerical argument out of domain

Het argument van een wiskundige functie valt buiten het domein ervan, zoals de vierkantswortel van een negatief getal.

ERANGE
Linux 34macOS 34

Numerical result out of range

macOS: Result too large

Het resultaat van een functie is te groot of te klein om te worden weergegeven, of een buffer is te klein voor het resultaat, zoals bij getcwd met een te korte buffer.

EDEADLK
Linux 35macOS 11

Resource deadlock avoided

Er werd een deadlock voorkomen: de gevraagde lock, zoals een bestandsvergrendeling met fcntl of een mutex met foutdetectie, zou eeuwig zijn blijven wachten.

Zelfde waarde:EDEADLOCK

ENAMETOOLONG
Linux 36macOS 63

File name too long

Het pad of een van de onderdelen ervan overschrijdt de maximale lengte: in Linux doorgaans 255 bytes per naam en 4096 per pad.

ENOLCK
Linux 37macOS 77

No locks available

Er zijn geen locks beschikbaar. Bij NFS betekent dit meestal dat de vergrendelingsdienst (lockd of rpc.statd) niet draait.

ENOSYS
Linux 38macOS 78

Function not implemented

De systeemaanroep bestaat niet in deze kernel of is niet geïmplementeerd. Typisch voor binaries die voor een nieuwere kernel zijn gecompileerd, of voor seccomp-profielen van containers die recente aanroepen niet kennen.

ENOTEMPTY
Linux 39macOS 66

Directory not empty

De map is niet leeg, bijvoorbeeld bij rmdir of bij het hernoemen over een bestaande map. Gebruik rm -r om hem met inhoud en al te verwijderen.

ELOOP
Linux 40macOS 62

Too many levels of symbolic links

Er zijn te veel symbolische links aan elkaar geschakeld bij het oplossen van het pad, meestal door een lus, of O_NOFOLLOW werd gebruikt op een symbolische link.

ENOMSG
Linux 42macOS 91

No message of desired type

Er is geen bericht van het gevraagde type in de System V-berichtenwachtrij.

EIDRM
Linux 43macOS 90

Identifier removed

De System V-IPC-identificatie (wachtrij, semafoor of gedeeld geheugen) werd verwijderd terwijl het proces die gebruikte.

ECHRNG
Linux 44macOS —

Channel number out of range

Kanaalnummer buiten bereik. Een verouderde code zonder praktisch nut in Linux.

EL2NSYNC
Linux 45macOS —

Level 2 not synchronized

Niveau 2 niet gesynchroniseerd. Een verouderde code uit System V zonder praktisch nut in Linux.

EL3HLT
Linux 46macOS —

Level 3 halted

Niveau 3 gestopt. Een verouderde code uit System V zonder praktisch nut in Linux.

EL3RST
Linux 47macOS —

Level 3 reset

Niveau 3 gereset. Een verouderde code uit System V zonder praktisch nut in Linux.

ELNRNG
Linux 48macOS —

Link number out of range

Linknummer buiten bereik. Een verouderde code zonder praktisch nut in Linux.

EUNATCH
Linux 49macOS —

Protocol driver not attached

De protocoldriver is niet gekoppeld. Weinig subsystemen gebruiken dit, zoals sommige Bluetooth-drivers.

ENOCSI
Linux 50macOS —

No CSI structure available

Er is geen CSI-structuur beschikbaar. Een verouderde code zonder praktisch nut in Linux.

EL2HLT
Linux 51macOS —

Level 2 halted

Niveau 2 gestopt. Een verouderde code uit System V zonder praktisch nut in Linux.

EBADE
Linux 52macOS —

Invalid exchange

Ongeldige uitwisseling. Een verouderde code die sommige drivers en bestandssystemen met een eigen betekenis hergebruiken.

EBADR
Linux 53macOS —

Invalid request descriptor

Ongeldige aanvraagdescriptor. Een verouderde code die sommige drivers met een eigen betekenis hergebruiken.

EXFULL
Linux 54macOS —

Exchange full

Uitwisseling vol. Een verouderde code zonder praktisch nut in Linux.

ENOANO
Linux 55macOS —

No anode

Er is geen „anode”. Een verouderde code zonder praktisch nut in Linux.

EBADRQC
Linux 56macOS —

Invalid request code

Ongeldige aanvraagcode. Verouderd; sommige drivers gebruiken hem voor opdrachten die ze niet ondersteunen.

EBADSLT
Linux 57macOS —

Invalid slot

Ongeldig slot. Een verouderde code zonder praktisch nut in Linux.

EBFONT
Linux 59macOS —

Bad font file format

Onjuist formaat van lettertypebestand. Een verouderde code zonder praktisch nut in Linux.

ENOSTR
Linux 60macOS 99

Device not a stream

macOS: Not a STREAM

Het apparaat is geen STREAM. Hoort bij de STREAMS-interface van System V, die Linux niet implementeert.

ENODATA
Linux 61macOS 96

No data available

macOS: No message available on STREAM

Er zijn geen gegevens beschikbaar. In Linux geeft getxattr dit terug als het uitgebreide attribuut niet bestaat; in macOS is dat geval ENOATTR.

ETIME
Linux 62macOS 101

Timer expired

macOS: STREAM ioctl timeout

Een timer is verlopen. Komt uit STREAMS; in Linux gebruiken sommige drivers en io_uring hem voor bewerkingen met een tijdslimiet.

ENOSR
Linux 63macOS 98

Out of streams resources

macOS: No STREAM resources

Er zijn geen STREAMS-bronnen meer, een interface die Linux niet implementeert.

ENONET
Linux 64macOS —

Machine is not on the network

De machine zit niet in het netwerk. Een weinig gebruikte verouderde code.

ENOPKG
Linux 65macOS —

Package not installed

Het pakket is niet geïnstalleerd. Verouderd; sommige subsystemen gebruiken hem als er een module ontbreekt, bijvoorbeeld een cryptografische.

EREMOTE
Linux 66macOS 71

Object is remote

macOS: Too many levels of remote in path

Het object is extern. Bij NFS geeft het een pad aan dat vanaf een andere server wordt geëxporteerd.

ENOLINK
Linux 67macOS 97

Link has been severed

De verbinding is verbroken. Verouderd; sommige drivers gebruiken hem als de verbinding met het apparaat wegvalt.

EADV
Linux 68macOS —

Advertise error

Fout bij „advertise”. Een verouderde code uit RFS zonder nut in Linux.

ESRMNT
Linux 69macOS —

Srmount error

Fout bij „srmount”. Een verouderde code uit RFS zonder nut in Linux.

ECOMM
Linux 70macOS —

Communication error on send

Communicatiefout bij het verzenden. Verouderd; sommige netwerk- en USB-drivers gebruiken hem.

EPROTO
Linux 71macOS 100

Protocol error

Protocolfout: de andere kant of het apparaat antwoordde iets onverwachts. Verschijnt bij USB-apparaten en bij verbindingen die midden in een uitwisseling wegvallen.

EMULTIHOP
Linux 72macOS 95

Multihop attempted

Er werd een meervoudige sprong (multihop) geprobeerd. Een verouderde code uit RFS.

EDOTDOT
Linux 73macOS —

RFS specific error

RFS-specifieke fout. Niet gebruikt in Linux.

EBADMSG
Linux 74macOS 94

Bad message

Het bericht is misvormd of beschadigd. ext4, XFS en Btrfs geven dit terug, met de alias EFSBADCRC, als de checksum van de metadata niet klopt.

Zelfde waarde:EFSBADCRC

EOVERFLOW
Linux 75macOS 84

Value too large for defined data type

macOS: Value too large to be stored in data type

De waarde past niet in het doelgegevenstype; bijvoorbeeld een 32-bitsprogramma dat zonder ondersteuning voor grote bestanden is gecompileerd en een bestand van meer dan 2 GB opent.

ENOTUNIQ
Linux 76macOS —

Name not unique on network

De naam is niet uniek in het netwerk. Een verouderde code.

EBADFD
Linux 77macOS —

File descriptor in bad state

De bestandsdescriptor bevindt zich in een onjuiste toestand. ALSA en sommige drivers gebruiken hem als het apparaat niet gereed is.

EREMCHG
Linux 78macOS —

Remote address changed

Het externe adres is gewijzigd. Een verouderde code.

ELIBACC
Linux 79macOS —

Can not access a needed shared library

Een benodigde gedeelde bibliotheek is niet toegankelijk. Een verouderde code uit de a.out-binaries.

ELIBBAD
Linux 80macOS —

Accessing a corrupted shared library

De gedeelde bibliotheek is beschadigd. Een verouderde code uit de a.out-binaries.

ELIBSCN
Linux 81macOS —

.lib section in a.out corrupted

De .lib-sectie van de a.out-binary is beschadigd. Een verouderde code.

ELIBMAX
Linux 82macOS —

Attempting to link in too many shared libraries

Er werd geprobeerd te veel gedeelde bibliotheken te linken. Een verouderde code uit a.out.

ELIBEXEC
Linux 83macOS —

Cannot exec a shared library directly

Een gedeelde bibliotheek kan niet rechtstreeks worden uitgevoerd. Een verouderde code uit a.out.

EILSEQ
Linux 84macOS 92

Invalid or incomplete multibyte or wide character

macOS: Illegal byte sequence

De bytereeks is ongeldig voor de tekencodering, zoals een tekst die geen geldige UTF-8 is, bij het converteren met iconv of met de multibytefuncties.

ERESTART
Linux 85macOS —

Interrupted system call should be restarted

De onderbroken aanroep moet opnieuw worden gestart. Wordt intern door de kernel gebruikt en zou programma's niet moeten bereiken.

ESTRPIPE
Linux 86macOS —

Streams pipe error

Pipefout van STREAMS. ALSA geeft dit terug als het audioapparaat in de slaapstand staat.

EUSERS
Linux 87macOS 68

Too many users

Te veel gebruikers. Het schijfquotasysteem geeft dit terug als zijn tabel vol is; het komt zelden voor.

ENOTSOCK
Linux 88macOS 38

Socket operation on non-socket

Er werd een socketbewerking gebruikt op een descriptor die geen socket is.

EDESTADDRREQ
Linux 89macOS 39

Destination address required

Het bestemmingsadres ontbreekt: er werd verzonden via een verbindingsloze socket zonder aan te geven waarheen.

EMSGSIZE
Linux 90macOS 40

Message too long

Het bericht is te groot voor de socket, zoals een UDP-datagram dat groter is dan het maximum of dan de MTU wanneer fragmentatie niet is toegestaan.

EPROTOTYPE
Linux 91macOS 41

Protocol wrong type for socket

Het protocol past niet bij het sockettype.

ENOPROTOOPT
Linux 92macOS 42

Protocol not available

De gevraagde socketoptie of het gevraagde protocol is niet beschikbaar, bijvoorbeeld een optie van setsockopt die de kernel niet kent.

EPROTONOSUPPORT
Linux 93macOS 43

Protocol not supported

Het protocol wordt niet ondersteund, bijvoorbeeld omdat de kernelmodule ervan niet geladen is.

ESOCKTNOSUPPORT
Linux 94macOS 44

Socket type not supported

Het sockettype wordt niet ondersteund in die adresfamilie.

EOPNOTSUPP
Linux 95macOS 102

Operation not supported

macOS: Operation not supported on socket

De bewerking wordt niet ondersteund door de socket of door het object. In Linux heeft hij dezelfde waarde als ENOTSUP, en veel bestandssystemen geven hem terug voor functies die ze niet implementeren, zoals fallocate of uitgebreide attributen.

ENOTSUP
Linux 95macOS 45

Operation not supported

De bewerking wordt niet ondersteund. In Linux heeft hij dezelfde waarde als EOPNOTSUPP (95); in macOS zijn het verschillende codes.

EPFNOSUPPORT
Linux 96macOS 46

Protocol family not supported

De protocolfamilie wordt niet ondersteund.

EAFNOSUPPORT
Linux 97macOS 47

Address family not supported by protocol

macOS: Address family not supported by protocol family

De adresfamilie wordt niet ondersteund; typisch bij gebruik van IPv6 op een systeem of in een container waar het is uitgeschakeld.

EADDRINUSE
Linux 98macOS 48

Address already in use

Het adres en de poort zijn al in gebruik: een ander proces luistert op die poort, of de vorige verbinding staat nog in TIME_WAIT. Zoek het proces met ss -ltnp of lsof -i :POORT, of gebruik SO_REUSEADDR.

EADDRNOTAVAIL
Linux 99macOS 49

Cannot assign requested address

macOS: Can't assign requested address

Het gevraagde adres kan niet worden toegewezen: het IP-adres hoort bij geen enkele interface van de machine, of de efemere poorten voor uitgaande verbindingen zijn uitgeput.

ENETDOWN
Linux 100macOS 50

Network is down

De netwerkinterface is niet actief.

ENETUNREACH
Linux 101macOS 51

Network is unreachable

Het doelnetwerk is onbereikbaar omdat er geen route naartoe is. Controleer de routetabel en de gateway; het gebeurt ook bij verbinden via IPv6 zonder IPv6-connectiviteit.

ENETRESET
Linux 102macOS 52

Network dropped connection on reset

Het netwerk heeft de verbinding gereset, bijvoorbeeld wanneer een keepalive mislukt.

ECONNABORTED
Linux 103macOS 53

Software caused connection abort

De verbinding werd aan de lokale kant afgebroken, bijvoorbeeld omdat de client haar sloot voordat de server haar met accept accepteerde.

ECONNRESET
Linux 104macOS 54

Connection reset by peer

De andere kant heeft de verbinding abrupt verbroken met een RST („Connection reset by peer”): het externe proces is afgesloten, een firewall of load balancer heeft de inactieve verbinding verbroken, of er werden gegevens verzonden die de andere kant niet verwachtte.

ENOBUFS
Linux 105macOS 55

No buffer space available

Er is geen bufferruimte beschikbaar in de kernel voor de netwerkbewerking; dit komt meestal voor bij veel verkeer of met volle socketwachtrijen.

EISCONN
Linux 106macOS 56

Transport endpoint is already connected

macOS: Socket is already connected

De socket is al verbonden.

ENOTCONN
Linux 107macOS 57

Transport endpoint is not connected

macOS: Socket is not connected

De socket is niet verbonden: er werd geprobeerd te verzenden of te ontvangen voordat er verbinding was, of de verbinding is al gesloten. Bij een FUSE-mount verschijnt dit als „Transport endpoint is not connected” wanneer het proces ervan is gestorven; je lost het op door te ontkoppelen met fusermount -u.

ESHUTDOWN
Linux 108macOS 58

Cannot send after transport endpoint shutdown

macOS: Can't send after socket shutdown

Er kan niet meer worden verzonden nadat die richting van de socket met shutdown is gesloten.

ETOOMANYREFS
Linux 109macOS 59

Too many references: cannot splice

macOS: Too many references: can't splice

Te veel verwijzingen; in Linux bij het doorgeven van te veel geneste descriptors via een Unix-socket.

ETIMEDOUT
Linux 110macOS 60

Connection timed out

macOS: Operation timed out

De time-out van de verbinding is verlopen omdat de bestemming niet antwoordde. Meestal komt dit door een firewall die de pakketten stilletjes weggooit, een host die uitstaat of een route die niet aankomt.

ECONNREFUSED
Linux 111macOS 61

Connection refused

De bestemming weigerde de verbinding: de machine antwoordt, maar niemand luistert op die poort of een firewall antwoordt met een weigering. Controleer of de dienst draait en luistert op de juiste interface, niet alleen op 127.0.0.1.

EHOSTDOWN
Linux 112macOS 64

Host is down

De doelhost is offline.

EHOSTUNREACH
Linux 113macOS 65

No route to host

Er is geen route naar de host: hij reageert niet op ARP in het lokale netwerk, of een router of firewall meldt dat hij onbereikbaar is.

EALREADY
Linux 114macOS 37

Operation already in progress

Er loopt al een bewerking op de socket, zoals een niet-blokkerende connect die nog niet klaar is.

EINPROGRESS
Linux 115macOS 36

Operation now in progress

De bewerking is bezig: een niet-blokkerende connect is gestart en wordt later afgerond. Het is geen fout; wacht met poll of select.

ESTALE
Linux 116macOS 70

Stale file handle

macOS: Stale NFS file handle

De bestandshandle is verouderd: bij NFS is het bestand of de map op de server verwijderd of vervangen. Je lost het op door het pad opnieuw te openen of opnieuw te mounten.

EUCLEAN
Linux 117macOS —

Structure needs cleaning

De structuur moet worden opgeschoond: het bestandssysteem heeft corruptie gedetecteerd (bij ext4 en XFS met de alias EFSCORRUPTED). Ontkoppel het en voer fsck of xfs_repair uit.

Zelfde waarde:EFSCORRUPTED

ENOTNAM
Linux 118macOS —

Not a XENIX named type file

Geen benoemd XENIX-bestand. Een ongebruikte verouderde code.

ENAVAIL
Linux 119macOS —

No XENIX semaphores available

Er zijn geen XENIX-semaforen beschikbaar. Een ongebruikte verouderde code.

EISNAM
Linux 120macOS —

Is a named type file

Is een benoemd XENIX-bestand. Een ongebruikte verouderde code.

EREMOTEIO
Linux 121macOS —

Remote I/O error

Externe I/O-fout, bijvoorbeeld van een I2C-apparaat of van een externe schijf die niet antwoordde.

EDQUOT
Linux 122macOS 69

Disk quota exceeded

macOS: Disc quota exceeded

Het schijfquotum van de gebruiker of de groep is overschreden.

ENOMEDIUM
Linux 123macOS —

No medium found

Er zit geen medium in het apparaat, zoals een station zonder schijf of een lege kaartlezer.

EMEDIUMTYPE
Linux 124macOS —

Wrong medium type

Het type medium is onjuist.

ECANCELED
Linux 125macOS 89

Operation canceled

De bewerking werd geannuleerd, bijvoorbeeld een asynchrone I/O of een wachtbewerking van io_uring.

ENOKEY
Linux 126macOS —

Required key not available

De benodigde sleutel staat niet in de keyring van de kernel. Verschijnt bij versleutelde bestandssystemen, zoals fscrypt of eCryptfs, als de sleutel niet is geladen.

EKEYEXPIRED
Linux 127macOS —

Key has expired

De sleutel is verlopen. PAM en Kerberos gebruiken dit ook als het wachtwoord of het ticket is verlopen.

EKEYREVOKED
Linux 128macOS —

Key has been revoked

De sleutel is ingetrokken.

EKEYREJECTED
Linux 129macOS —

Key was rejected by service

De dienst heeft de sleutel geweigerd.

EOWNERDEAD
Linux 130macOS 105

Owner died

macOS: Previous owner died

De eigenaar van een robuuste mutex is gestorven zonder hem vrij te geven. De nieuwe eigenaar moet de beschermde toestand consistent maken en pthread_mutex_consistent aanroepen.

ENOTRECOVERABLE
Linux 131macOS 104

State not recoverable

De toestand die door een robuuste mutex wordt beschermd, kan niet worden hersteld, omdat de vorige eigenaar is gestorven en niemand hem als consistent heeft gemarkeerd.

ERFKILL
Linux 132macOS —

Operation not possible due to RF-kill

De bewerking is niet mogelijk omdat de wifi- of Bluetooth-radio door RF-kill is geblokkeerd. Controleer rfkill list, de fysieke schakelaar of de toets voor de vliegtuigmodus.

EHWPOISON
Linux 133macOS —

Memory page has hardware error

De geheugenpagina heeft een hardwarefout en de kernel heeft haar als vergiftigd gemarkeerd.

EFTYPE
Linux 134macOS 79

Inappropriate file type or format

Het bestandstype is niet geschikt voor de bewerking. In macOS en BSD bestaat dit al lang; in Linux is het pas onlangs toegevoegd.

EPROCLIM
Linux —macOS 67

Too many processes

Te veel processen. BSD definieert dit voor de proceslimiet, al geeft fork in de praktijk EAGAIN terug.

EBADRPC
Linux —macOS 72

RPC struct is bad

De RPC-structuur is onjuist (Sun RPC, dat NFS gebruikt).

ERPCMISMATCH
Linux —macOS 73

RPC version wrong

De RPC-versie komt niet overeen (Sun RPC, dat NFS gebruikt).

EPROGUNAVAIL
Linux —macOS 74

RPC program not available

macOS: RPC prog. not avail

Het RPC-programma is niet beschikbaar op de server.

EPROGMISMATCH
Linux —macOS 75

RPC program version wrong

macOS: Program version wrong

De versie van het RPC-programma komt niet overeen.

EPROCUNAVAIL
Linux —macOS 76

RPC bad procedure for program

macOS: Bad procedure for program

De procedure bestaat niet in het RPC-programma.

EAUTH
Linux —macOS 80

Authentication error

Authenticatiefout, bijvoorbeeld bij het mounten van een NFS-share.

ENEEDAUTH
Linux —macOS 81

Need authenticator

Voor de bewerking is een authenticator nodig.

EPWROFF
Linux —macOS 82

Device power is off

Het apparaat staat uit.

EDEVERR
Linux —macOS 83

Device error, e.g. paper out

Apparaatfout, bijvoorbeeld een printer zonder papier.

EBADEXEC
Linux —macOS 85

Bad executable

Het uitvoerbare bestand is ongeldig.

EBADARCH
Linux —macOS 86

Bad CPU type in executable

Het uitvoerbare bestand is voor een ander type CPU, zoals een binary die alleen x86_64 bevat op een Mac met Apple Silicon zonder Rosetta 2, of een ARM-binary op een Mac met Intel.

ESHLIBVERS
Linux —macOS 87

Shared library version mismatch

De versie van de gedeelde bibliotheek komt niet overeen.

EBADMACHO
Linux —macOS 88

Malformed Macho file

Het Mach-O-bestand is misvormd of beschadigd.

ENOATTR
Linux —macOS 93

Attribute not found

Het uitgebreide attribuut bestaat niet; komt overeen met ENODATA in Linux. Verschijnt bij xattr, bijvoorbeeld bij het verwijderen van com.apple.quarantine van een bestand dat het niet heeft.

ENOPOLICY
Linux —macOS 103

No such policy registered

Er is geen beleid met die naam geregistreerd in het MAC Framework.

EQFULL
Linux —macOS 106

Interface output queue is full

De uitvoerwachtrij van de netwerkinterface is vol.

ENOTCAPABLE
Linux —macOS 107

Capabilities insufficient

Onvoldoende capabilities: aanroepen die een sandbox beperkt, geven dit terug.

SIGSignalen33
SIGHUP
Linux 1macOS 1

Hangup

De terminal die het proces aanstuurde, is gesloten of de SSH-sessie is verbroken. Veel daemons, zoals nginx, sshd of rsyslog, gebruiken het als verzoek om de configuratie opnieuw te lezen; nohup, tmux en screen voorkomen dat het de processen afsluit bij het uitloggen.

Beëindigt het proces
SIGINT
Linux 2macOS 2

Interrupt

Onderbreking vanaf het toetsenbord met Ctrl+C. Het programma kan het afvangen om netjes af te sluiten. Exitcode 130.

Beëindigt het proces
SIGQUIT
Linux 3macOS 3

Quit

Afsluiten vanaf het toetsenbord met Ctrl+\. Beëindigt het proces met een core dump; de JVM gebruikt het daarentegen om de toestand van de threads af te drukken.

Beëindigt met core dump
SIGILL
Linux 4macOS 4

Illegal instruction

De processor kwam een ongeldige instructie tegen: een binary die is gecompileerd voor een nieuwere CPU (bijvoorbeeld met AVX2 of AVX-512 op een processor die die niet heeft), beschadigde code of een sprong naar gegevens.

Beëindigt met core dump
SIGTRAP
Linux 5macOS 5

Trace/breakpoint trap

Debugtrap: debuggers gebruiken het voor breakpoints. Komt het binnen zonder debugger, dan is het meestal een fout die het programma zelf heeft gedetecteerd, zoals de controles van Swift in macOS.

Beëindigt met core dump
SIGABRT
Linux 6macOS 6

Aborted

Het proces heeft abort() aangeroepen: een mislukte assertion, een niet-afgevangen C++-exceptie of een heapcorruptie die de C-bibliotheek heeft gedetecteerd („double free or corruption”). Exitcode 134.

Beëindigt met core dump

Zelfde waarde:SIGIOT

SIGBUS
Linux 7macOS 10

Bus error

Busfout: een toegang tot onjuist uitgelijnd geheugen op sommige architecturen, of tot een deel van een met mmap gekoppeld bestand dat niet meer bestaat omdat het bestand is ingekort. Gebeurt ook als /dev/shm vol raakt.

Beëindigt met core dump
SIGFPE
Linux 8macOS 8

Floating point exception

Rekenkundige uitzondering. Ondanks de naam is de meest voorkomende oorzaak een gehele deling door nul.

Beëindigt met core dump
SIGKILL
Linux 9macOS 9

Killed

Beëindigt het proces onmiddellijk: het kan niet worden afgevangen, geblokkeerd of genegeerd. Het wordt verzonden door kill -9, door de OOM killer van de kernel als het geheugen op is, en door Docker of Kubernetes als een container zijn geheugenlimiet overschrijdt (OOMKilled) of na SIGTERM niet op tijd stopt. Exitcode 137.

Beëindigt het procesKan niet worden afgevangen
SIGUSR1
Linux 10macOS 30

User defined signal 1

Vrij signaal dat elke applicatie naar eigen inzicht kan gebruiken; dd meldt er bijvoorbeeld zijn voortgang mee en nginx opent er de logs opnieuw mee.

Beëindigt het proces
SIGSEGV
Linux 11macOS 11

Segmentation fault

Segmentatiefout („Segmentation fault”): een toegang tot ongeldig geheugen, zoals het dereferencen van een null-pointer, buiten een array lezen of schrijven of de stack laten overlopen met een oneindige recursie. Exitcode 139.

Beëindigt met core dump
SIGUSR2
Linux 12macOS 31

User defined signal 2

Tweede vrije signaal dat elke applicatie naar eigen inzicht kan gebruiken.

Beëindigt het proces
SIGPIPE
Linux 13macOS 13

Broken pipe

Schrijven naar een pipe of een socket zonder lezer. Normaal bij cmd | head, waar de lezer eerder stopt; servers negeren het meestal en handelen de fout EPIPE af. Exitcode 141.

Beëindigt het proces
SIGALRM
Linux 14macOS 14

Alarm clock

De met alarm of setitimer ingestelde timer is verlopen.

Beëindigt het proces
SIGTERM
Linux 15macOS 15

Terminated

Verzoek om netjes af te sluiten. Het is het standaardsignaal van kill, systemctl stop, docker stop en van Kubernetes bij het verwijderen van een pod; het proces hoort zijn verbindingen te sluiten en te stoppen. Exitcode 143.

Beëindigt het proces
SIGSTKFLT
Linux 16macOS —

Stack fault

Stackfout van de coprocessor. Wordt in het huidige Linux niet gebruikt.

Beëindigt het proces
SIGCHLD
Linux 17macOS 20

Child exited

Een kindproces is beëindigd, gepauzeerd of hervat. De ouder moet het met wait opruimen; doet hij dat niet, dan blijft het kind achter als zombie.

Wordt genegeerd

Zelfde waarde:SIGCLD

SIGCONT
Linux 18macOS 19

Continued

Hervat een gepauzeerd proces, zoals fg en bg in de shell doen.

Hervat het proces
SIGSTOP
Linux 19macOS 17

Stopped (signal)

Pauzeert het proces; het kan niet worden afgevangen of genegeerd. Het wordt hervat met SIGCONT.

Pauzeert het procesKan niet worden afgevangen
SIGTSTP
Linux 20macOS 18

Stopped

Pauzeren vanaf de terminal met Ctrl+Z. Anders dan SIGSTOP kan het programma het afvangen.

Pauzeert het proces
SIGTTIN
Linux 21macOS 21

Stopped (tty input)

Een achtergrondproces probeerde van de terminal te lezen.

Pauzeert het proces
SIGTTOU
Linux 22macOS 22

Stopped (tty output)

Een achtergrondproces probeerde naar de terminal te schrijven terwijl stty tostop actief is, of de configuratie ervan te wijzigen.

Pauzeert het proces
SIGURG
Linux 23macOS 16

Urgent I/O condition

Er zijn urgente gegevens (out-of-band) op een socket binnengekomen. Go gebruikt het intern om goroutines te onderbreken.

Wordt genegeerd
SIGXCPU
Linux 24macOS 24

CPU time limit exceeded

De CPU-tijdlimiet van het proces is overschreden (ulimit -t).

Beëindigt met core dump
SIGXFSZ
Linux 25macOS 25

File size limit exceeded

De maximale bestandsgrootte die het proces mag gebruiken, is overschreden (ulimit -f).

Beëindigt met core dump
SIGVTALRM
Linux 26macOS 26

Virtual timer expired

De virtuele timer is verlopen, die alleen de CPU-tijd van het proces telt.

Beëindigt het proces
SIGPROF
Linux 27macOS 27

Profiling timer expired

De profileringstimer is verlopen, die door profilers wordt gebruikt.

Beëindigt het proces
SIGWINCH
Linux 28macOS 28

Window changed

De grootte van het terminalvenster is gewijzigd; programma's op volledig scherm gebruiken het om zich opnieuw te tekenen.

Wordt genegeerd
SIGIO
Linux 29macOS 23

input/output possible signal

Er is I/O beschikbaar op een descriptor die met O_ASYNC is ingesteld. In Linux is SIGPOLL hetzelfde signaal.

Beëindigt het proces

Zelfde waarde:SIGPOLL

SIGPWR
Linux 30macOS —

Power failure

Stroomstoring, die UPS-software aan het init-systeem meldt.

Beëindigt het proces
SIGSYS
Linux 31macOS 12

Bad system call

Ongeldige systeemaanroep. Tegenwoordig is de gebruikelijke oorzaak een seccomp-filter die hem blokkeert, zoals in containers.

Beëindigt met core dump
SIGEMT
Linux —macOS 7

EMT trap

Emulatortrap (EMT). Bestaat in macOS en BSD, maar niet in Linux op x86 of ARM.

Beëindigt met core dump
SIGINFO
Linux —macOS 29

Information request

Verzoek om informatie met Ctrl+T in de terminal van macOS en BSD; veel opdrachten reageren door hun voortgang te tonen.

Wordt genegeerd
$?Exitcodes24
0EXIT_SUCCESS

De opdracht is goed afgerond. Het is de enige code die succes betekent: elke andere waarde duidt op een fout.

C
1EXIT_FAILURE

Algemene fout; elk programma bepaalt zelf wat hij betekent. De details staan meestal in wat de opdracht naar stderr schreef. grep en diff gebruiken hem met een andere betekenis: „geen overeenkomsten gevonden” of „de bestanden verschillen”.

C
2Misuse of shell builtins

Onjuist gebruik van een ingebouwde shellopdracht of een syntaxfout in het script. Veel programma's gebruiken hem ook voor ongeldige opties, en grep voor echte fouten.

Bash
64EX_USAGE

De opdracht is verkeerd gebruikt: er ontbreken argumenten, er zijn er te veel of een optie is onjuist.

sysexits.h
65EX_DATAERR

De invoergegevens hebben een onjuist formaat.

sysexits.h
66EX_NOINPUT

Een invoerbestand bestaat niet of kan niet worden gelezen.

sysexits.h
67EX_NOUSER

De opgegeven gebruiker bestaat niet; vooral gebruikt door mailprogramma's.

sysexits.h
68EX_NOHOST

De hostnaam bestaat niet.

sysexits.h
69EX_UNAVAILABLE

Een benodigde dienst is niet beschikbaar, of er is iets mislukt dat in geen andere categorie past.

sysexits.h
70EX_SOFTWARE

Interne fout van het programma.

sysexits.h
71EX_OSERR

Fout van het besturingssysteem, zoals niet kunnen forken of geen pipe kunnen maken.

sysexits.h
72EX_OSFILE

Een systeembestand, zoals /etc/passwd, ontbreekt of bevat een fout.

sysexits.h
73EX_CANTCREAT

Een uitvoerbestand kan niet worden gemaakt.

sysexits.h
74EX_IOERR

Invoer-/uitvoerfout bij het lezen of schrijven van een bestand.

sysexits.h
75EX_TEMPFAIL

Tijdelijke fout: het is zinvol het later opnieuw te proberen. Mailservers gebruiken hem om het bericht in de wachtrij te houden.

sysexits.h
76EX_PROTOCOL

Het externe systeem antwoordde iets wat niet aan het protocol voldoet.

sysexits.h
77EX_NOPERM

Onvoldoende rechten voor de bewerking.

sysexits.h
78EX_CONFIG

Er zit een fout in de configuratie.

sysexits.h
124Timed out

De opdracht timeout heeft hem beëindigd omdat hij de opgegeven tijd overschreed.

GNU timeout
125Container failed to run

docker run zelf is mislukt voordat de container werd uitgevoerd, bijvoorbeeld door een onjuiste optie of een fout van de daemon. GNU timeout geeft hem ook terug als timeout zelf faalt.

Docker
126Command invoked cannot execute

Het bestand bestaat, maar kan niet worden uitgevoerd: het uitvoerrecht ontbreekt, het is een map of het is een binary voor een andere architectuur. Bij Docker is de opdracht van de container niet uitvoerbaar.

POSIX
127Command not found

De opdracht is niet gevonden: hij is niet geïnstalleerd, staat niet in het PATH of is verkeerd gespeld. In scripts verschijnt deze code ook als de interpreter uit de #!-regel ontbreekt; bij Docker als de opdracht van de container niet in de image bestaat.

POSIX
128Fatal error

Codes boven 128 geven aan dat een signaal het proces heeft beëindigd, maar 128 komt met geen enkel signaal overeen. Git gebruikt hem voor al zijn fatale fouten („fatal: …”), zoals een repository die niet bestaat of een mislukte authenticatie bij het klonen.

Git
255Exit status out of range

De exitcode viel buiten het bereik: exit -1 komt aan als 255, omdat alleen 8 bits bewaard blijven. ssh geeft hem ook terug als de verbinding of de authenticatie mislukt, om hem te onderscheiden van de code van de externe opdracht.

POSIX

De waarden voor Linux zijn die van x86, x86-64 en ARM; Alpha, MIPS, SPARC en PA-RISC nummeren sommige errno-codes en signalen anders. De Engelse berichten zijn die welke strerror en strsignal in glibc tonen, en die van macOS als ze verschillen. Exitcodes boven 128 worden geïnterpreteerd als 128 plus het signaalnummer, volgens de conventie van bash, Docker en Kubernetes.

Hoe het werkt

Als een systeemaanroep in Linux mislukt, geeft hij -1 terug en zet hij in de variabele errno een getal dat aangeeft waarom: 2 is ENOENT, het bestand bestaat niet; 13 is EACCES, toegang geweigerd. strerror zet dat getal om in de tekst die je op het scherm ziet, zoals „No such file or directory”. Python toont het als [Errno 13], Node.js als code: 'ECONNREFUSED' en Go, Rust of Java met dezelfde tekst. De nummers 1 tot en met 34 komen uit de oorspronkelijke Unix en zijn op alle systemen gelijk; de volgende heeft elk systeem op zijn eigen manier genummerd, dus ECONNREFUSED is 111 in Linux en 61 in macOS. De naam is portabel; het nummer niet.

Signalen zijn meldingen die de kernel of een ander proces naar een proces stuurt: SIGINT als je op Ctrl+C drukt, SIGTERM om het te vragen te stoppen, SIGKILL om het zonder vragen te beëindigen, SIGSEGV als het ongeldig geheugen benadert. Elk signaal heeft een standaardactie, en bijna alle kunnen worden afgevangen om iets anders te doen. Als een signaal een proces beëindigt, meldt de shell als exitcode 128 plus het signaalnummer: 137 is SIGKILL (9), 139 is SIGSEGV (11) en 143 is SIGTERM (15). Docker en Kubernetes gebruiken dezelfde conventie.

De exitcode is het getal dat een programma achterlaat als het stopt: 0 betekent succes en elke andere waarde een fout. Er blijven maar 8 bits bewaard, dus loopt hij van 0 tot 255. Er zijn weinig conventies: 126 en 127 gebruikt de shell als hij de opdracht niet kan uitvoeren of niet vindt, 64 tot en met 78 worden gedefinieerd in sysexits.h van BSD, en de rest bepaalt elk programma zelf, zoals grep, dat 1 teruggeeft als het niets vindt.

Voorbeelden

Last State: Terminated · Reason: OOMKilled · Exit Code: 137137 = 128 + 9 · SIGKILLDe container heeft zijn geheugenlimiet overschreden en de kernel heeft hem met SIGKILL beëindigd. Je moet de limiet in resources.limits.memory verhogen of uitzoeken waarom het proces zoveel verbruikt; opnieuw starten lost het niet op.
Error: connect ECONNREFUSED 127.0.0.1:5432ECONNREFUSED · Linux 111 · macOS 61 · Connection refusedNode.js kon geen verbinding maken met PostgreSQL omdat niemand op poort 5432 luistert. Als de applicatie in een container draait, is 127.0.0.1 de container zelf en niet de host: gebruik de naam van de databasedienst.
OSError: [Errno 48] Address already in useEADDRINUSE · Linux 98 · macOS 48De 48 verraadt dat het programma op macOS draait: in Linux is dezelfde fout 98. In beide gevallen gebruikt een ander proces de poort al; lsof -i :POORT laat zien welk.

Gebruiksscenario's

  • Een fout begrijpen van een applicatie in Python, Node.js, Go of C die alleen het nummer of de naam van de errno toont.
  • Aan de hand van de exitcode uitzoeken waarom een Docker-container is gestopt of een Kubernetes-pod opnieuw start.
  • Een errno-nummer van macOS omzetten naar de juiste naam, want vanaf 35 komt het niet overeen met dat van Linux.
  • De exitcode interpreteren van een script, een cronjob of een CI-job die is mislukt.
  • Kiezen welk signaal je met kill stuurt en weten wat het proces doet als het dat niet afvangt.
  • Een portabele foutafhandeling schrijven die op naam vergelijkt in plaats van op nummer.

Veelgestelde vragen

Wat betekent exitcode 137?

Dat het proces is beëindigd door signaal 9, SIGKILL (128 + 9). De meest voorkomende oorzaak is geheugen: de container heeft zijn limiet overschreden, wat Kubernetes meldt als OOMKilled, of de OOM killer van de kernel heeft dat proces gekozen, wat in dmesg verschijnt als „Out of memory: Killed process”. Het gebeurt ook bij docker kill, of als het proces na SIGTERM niet binnen de termijn stopt: 10 seconden bij docker stop en 30 bij Kubernetes.

Wat is het verschil tussen SIGTERM en SIGKILL?

SIGTERM vraagt het proces om te stoppen, en het proces kan het afvangen om verbindingen te sluiten, gegevens op te slaan en af te sluiten. Bij SIGKILL beëindigt de kernel het proces meteen, zonder dat het nog iets kan doen. De juiste aanpak is SIGTERM sturen, een paar seconden wachten en alleen naar SIGKILL grijpen als het nog draait; dat is precies wat systemd, docker stop en Kubernetes doen.

Waarom heeft dezelfde errno in macOS een ander nummer?

Omdat POSIX de namen definieert, maar niet de nummers. De nummers 1 tot en met 34 hebben alle systemen geërfd van de oorspronkelijke Unix; daarna hebben BSD, waar macOS van afstamt, en System V, dat Linux volgde, ze elk apart genummerd. Vergelijk daarom altijd op naam, met errno.ECONNREFUSED in Python, err.code in Node.js of de constante in C, en niet op nummer.

Wat is het verschil tussen EACCES en EPERM?

EACCES („Permission denied”) betekent dat de rechten van het bestand of van een map in het pad het niet toestaan, of dat een ACL of SELinux het verhindert: je lost het op met chmod, chown of het betreffende beleid. EPERM („Operation not permitted”) betekent dat de bewerking zelf rechten vereist, ongeacht de bestandsrechten, zoals de eigenaar van een bestand wijzigen of een proces van een andere gebruiker beëindigen: je hebt root of een capability nodig, of je moet een attribuut verwijderen, zoals dat van onveranderbaarheid.

Hoe zie ik de exitcode van een opdracht of een container?

In bash en zsh toont echo $? die van de laatste opdracht; in PowerShell $LASTEXITCODE. In Docker toont docker ps -a hem in de kolom STATUS, zoals „Exited (137)”. In Kubernetes toont kubectl describe pod hem bij „Last State: Terminated”, samen met de reden, zoals OOMKilled of Error.