Linux hata kodları
ECONNREFUSED veya «[Errno 13]» gibi bir errno değerinin, SIGKILL gibi bir sinyalin ya da 137 gibi bir çıkış kodunun ne anlama geldiğini Linux ve macOS değerleriyle öğrenin. Programın, Docker'ın veya Kubernetes'in iletisinin tamamını yapıştırın; araç kodu kendisi ayıklar.
Örnekler:

208 / 208 kod

errnoSistem çağrısı hataları151
EPERM
Linux 1macOS 1

Operation not permitted

İşlem, sürecin sahip olmadığı ayrıcalıklar gerektirir; örneğin bir dosyanın sahibini değiştirmek, başka bir kullanıcının sürecine sinyal göndermek veya değiştirilemez bir dosyayı (chattr +i) değiştirmek. EACCES'ten farklı olarak dosya izinlerini değiştirmek sorunu çözmez: root veya ilgili capability gerekir.

ENOENT
Linux 2macOS 2

No such file or directory

Dosya veya dizin yok. Yoldaki ara dizinlerden biri eksik olduğunda, sembolik bir bağlantı var olmayan bir hedefi gösterdiğinde veya bir betiğin #! satırındaki yorumlayıcı kurulu olmadığında da görülür.

ESRCH
Linux 3macOS 3

No such process

Bu kimliğe sahip bir süreç, süreç grubu veya iş parçacığı yok; örneğin zaten sonlanmış bir PID'ye kill uygulandığında.

EINTR
Linux 4macOS 4

Interrupted system call

Bir sinyal, sistem çağrısını tamamlanmadan kesti. Gerçek bir hata değildir: program çağrıyı yeniden denemeli veya sinyal işleyicisini SA_RESTART ile kurmalıdır.

EIO
Linux 5macOS 5

Input/output error

Genellikle aygıttan okurken veya aygıta yazarken oluşan düşük düzeyli giriş/çıkış hatası. Disklerde genellikle bozuk sektörlere veya arızalı bir kabloya işaret eder: dmesg'i ve SMART durumunu kontrol edin. Kapanmış bir terminale yazarken de görülür.

ENXIO
Linux 6macOS 6

No such device or address

macOS: Device not configured

Aygıt veya adres yok: aygıt dosyası mevcut ama arkasında donanım yok ya da bir FIFO, hiç okuyucusu yokken O_NONBLOCK ile yazma için açıldı.

E2BIG
Linux 7macOS 7

Argument list too long

exec'e geçirilen bağımsız değişken ve ortam değişkeni listesi çok büyük. Binlerce dosyaya genişleyen bir joker karakter kullanıldığında görülen klasik «Argument list too long» hatasıdır; find -exec veya xargs kullanın.

ENOEXEC
Linux 8macOS 8

Exec format error

Dosya tanınan bir yürütülebilir biçimde değil: başka bir mimari için bir ikili dosya, bozuk bir dosya ya da #! satırı olmayan bir betik.

EBADF
Linux 9macOS 9

Bad file descriptor

Dosya tanımlayıcısı geçersiz, zaten kapatılmış veya işleme izin vermeyen bir kipte açılmış; örneğin yalnızca okuma için açılmış bir tanımlayıcıya yazmak.

ECHILD
Linux 10macOS 10

No child processes

Sürecin wait veya waitpid ile bekleyebileceği alt süreci yok; çoğunlukla SIGCHLD yok sayıldığı ve alt süreçler kendiliğinden toplandığı için.

EAGAIN
Linux 11macOS 35

Resource temporarily unavailable

Kaynak şu anda kullanılamıyor; yeniden denemek gerekir. Engellemeyen işlemlerde henüz veri veya alan olmadığı anlamına gelir; fork'ta ise süreç veya iş parçacığı sınırına ulaşıldığını (ulimit -u veya cgroup'un pids.max değeri) gösterir.

Aynı değer:EWOULDBLOCK

ENOMEM
Linux 12macOS 12

Cannot allocate memory

İşlem için yeterli bellek yok veya sürecin bir bellek sınırı aşıldı. fork veya mmap'te nedeni overcommit politikası, cgroup sınırı ya da adres alanı yetersizliği olabilir.

EACCES
Linux 13macOS 13

Permission denied

İzin reddedildi: dosyanın veya yoldaki bir dizinin izinleri (her birinde yürütme izni gerekir), bir ACL, SELinux veya AppArmor ya da noexec ile yapılmış bir bağlama nedeniyle. bind de ayrıcalık olmadan 1024'ten küçük bir port kullanıldığında bu hatayı döndürür.

EFAULT
Linux 14macOS 14

Bad address

Bir sistem çağrısına geçersiz bir bellek adresini gösteren bir işaretçi geçirildi. Programda bir hataya işaret eder.

ENOTBLK
Linux 15macOS 15

Block device required

İşlem disk gibi bir blok aygıtı gerektiriyor ama başka türde bir dosya aldı; örneğin sıradan bir dosya -o loop olmadan bağlandığında.

EBUSY
Linux 16macOS 16

Device or resource busy

macOS: Device / Resource busy

Aygıt veya kaynak kullanımda. Açık dosyaları olan ya da içinde bir terminalin bulunduğu bir dosya sistemini ayırırken tipiktir; lsof veya fuser onu hangi süreçlerin kullandığını gösterir.

EEXIST
Linux 17macOS 17

File exists

Bu ada sahip bir dosya, dizin veya başka bir nesne zaten var; örneğin O_EXCL ile oluştururken, mkdir'i -p olmadan kullanırken veya hedefi zaten var olan bir bağlantı oluştururken.

EXDEV
Linux 18macOS 18

Invalid cross-device link

macOS: Cross-device link

Farklı dosya sistemleri arasında sabit bağlantı oluşturulamaz veya dosya yeniden adlandırılamaz. mv bunu kopyalayıp silerek çözer; rename() kullanan programlar da aynısını yapmalıdır.

ENODEV
Linux 19macOS 19

No such device

macOS: Operation not supported by device

Aygıt yok veya işlemi desteklemiyor; örneğin çekirdek modülü yüklenmemiş bir dosya sistemi türünü bağlarken.

ENOTDIR
Linux 20macOS 20

Not a directory

Yolun dizin olması gereken bir bileşeni bir dosya ya da bir dizin istendi (O_DIRECTORY) ama hedef dizin değil.

EISDIR
Linux 21macOS 21

Is a directory

Bir dizin üzerinde, onu yazma için açmak gibi bir dosya işlemi denendi.

EINVAL
Linux 22macOS 22

Invalid argument

Bir bağımsız değişken çağrı için geçersiz: aralık dışı bir değer, uyumsuz bir seçenek birleşimi veya nesnenin desteklemediği bir işlem. Geneldir: somut durumları çağrının man sayfası listeler.

ENFILE
Linux 23macOS 23

Too many open files in system

Sistem genelindeki açık dosya tablosu doldu. Sınır, sysctl'deki fs.file-max ile ayarlanır.

EMFILE
Linux 24macOS 24

Too many open files

Süreç açık tanımlayıcı sınırına ulaştı («Too many open files»). Sınırı ulimit -n ile veya systemd'de LimitNOFILE ile yükseltin ve programın dosyaları ya da soketleri açık bırakmadığını kontrol edin.

ENOTTY
Linux 25macOS 25

Inappropriate ioctl for device

Terminal olmayan bir şey üzerinde bir terminal işlemi (ioctl) istendi; örneğin etkileşimli bir programın çıktısı bir dosyaya veya pipe'a yönlendirildiğinde.

ETXTBSY
Linux 26macOS 26

Text file busy

Yürütülebilir dosya kullanımda: çalışan bir ikili dosyaya yazılamaz, yazma için hâlâ açık olan bir dosya da çalıştırılamaz. Güncellemek için yeni bir dosya yazıp onu yeniden adlandırmak en iyisidir.

EFBIG
Linux 27macOS 27

File too large

Dosya, dosya sisteminin izin verdiği en büyük boyutu (FAT32'de 4 GB) veya sürecin RLIMIT_FSIZE sınırını aşıyor.

ENOSPC
Linux 28macOS 28

No space left on device

Aygıtta yer kalmadı. df boş alan gösteriyorsa df -i ile inode'ları kontrol edin. inotify da fs.inotify.max_user_watches tükendiğinde bu hatayı döndürür.

ESPIPE
Linux 29macOS 29

Illegal seek

Bir pipe, FIFO veya soket üzerinde lseek yapılamaz, çünkü bunların bir konumu yoktur.

EROFS
Linux 30macOS 30

Read-only file system

Dosya sistemi salt okunur olarak bağlanmış. Kimse istemediği hâlde salt okunura geçtiyse bunu hataları algılayan çekirdek yapmıştır: dmesg'i kontrol edin ve fsck çalıştırın.

EMLINK
Linux 31macOS 31

Too many links

Bir dosyaya verilebilecek en fazla sabit bağlantı sayısı veya bazı dosya sistemlerinde bir dizindeki en fazla alt dizin sayısı aşıldı.

EPIPE
Linux 32macOS 32

Broken pipe

Diğer ucu zaten kapanmış bir pipe'a veya sokete yazıldı («Broken pipe»). Süreç, hatanın yanı sıra SIGPIPE de alır; cmd | head örneğinde olduğu gibi okuyucu önce sonlandığında bu normaldir.

EDOM
Linux 33macOS 33

Numerical argument out of domain

Matematiksel bir fonksiyonun bağımsız değişkeni tanım kümesinin dışında; örneğin negatif bir sayının karekökü.

ERANGE
Linux 34macOS 34

Numerical result out of range

macOS: Result too large

Bir fonksiyonun sonucu temsil edilemeyecek kadar büyük veya küçük ya da bir arabellek sonuç için yetersiz; örneğin kısa bir arabellekle çağrılan getcwd.

EDEADLK
Linux 35macOS 11

Resource deadlock avoided

Bir kilitlenme önlendi: istenen kilit, örneğin fcntl ile bir dosya kilidi veya hata denetimli bir mutex, sonsuza dek beklerdi.

Aynı değer:EDEADLOCK

ENAMETOOLONG
Linux 36macOS 63

File name too long

Yol veya bileşenlerinden biri en fazla uzunluğu aşıyor: Linux'ta genellikle ad başına 255 bayt, yol başına 4096 bayt.

ENOLCK
Linux 37macOS 77

No locks available

Kullanılabilir kilit yok. NFS'te genellikle kilit hizmetinin (lockd veya rpc.statd) çalışmadığını gösterir.

ENOSYS
Linux 38macOS 78

Function not implemented

Sistem çağrısı bu çekirdekte yok veya uygulanmamış. Daha yeni bir çekirdek için derlenmiş ikili dosyalarda ya da yeni çağrıları tanımayan konteyner seccomp profillerinde tipiktir.

ENOTEMPTY
Linux 39macOS 66

Directory not empty

Dizin boş değil; örneğin rmdir kullanırken veya var olan bir dizinin üzerine yeniden adlandırırken. İçeriğiyle birlikte silmek için rm -r kullanın.

ELOOP
Linux 40macOS 62

Too many levels of symbolic links

Yol çözümlenirken çok fazla sembolik bağlantı zincirlendi, genellikle bir döngü nedeniyle; ya da bir sembolik bağlantı üzerinde O_NOFOLLOW kullanıldı.

ENOMSG
Linux 42macOS 91

No message of desired type

System V ileti kuyruğunda istenen türde ileti yok.

EIDRM
Linux 43macOS 90

Identifier removed

System V IPC tanımlayıcısı (kuyruk, semafor veya paylaşılan bellek), süreç onu kullanırken kaldırıldı.

ECHRNG
Linux 44macOS —

Channel number out of range

Kanal numarası aralık dışında. Linux'ta pratik kullanımı olmayan eski bir koddur.

EL2NSYNC
Linux 45macOS —

Level 2 not synchronized

Düzey 2 eşitlenmemiş. Linux'ta pratik kullanımı olmayan, System V'den kalma eski bir koddur.

EL3HLT
Linux 46macOS —

Level 3 halted

Düzey 3 durduruldu. Linux'ta pratik kullanımı olmayan, System V'den kalma eski bir koddur.

EL3RST
Linux 47macOS —

Level 3 reset

Düzey 3 sıfırlandı. Linux'ta pratik kullanımı olmayan, System V'den kalma eski bir koddur.

ELNRNG
Linux 48macOS —

Link number out of range

Bağlantı numarası aralık dışında. Linux'ta pratik kullanımı olmayan eski bir koddur.

EUNATCH
Linux 49macOS —

Protocol driver not attached

Protokol sürücüsü bağlı değil. Bazı Bluetooth sürücüleri gibi az sayıda alt sistem kullanır.

ENOCSI
Linux 50macOS —

No CSI structure available

Kullanılabilir CSI yapısı yok. Linux'ta pratik kullanımı olmayan eski bir koddur.

EL2HLT
Linux 51macOS —

Level 2 halted

Düzey 2 durduruldu. Linux'ta pratik kullanımı olmayan, System V'den kalma eski bir koddur.

EBADE
Linux 52macOS —

Invalid exchange

Geçersiz değiş tokuş. Bazı sürücülerin ve dosya sistemlerinin kendi anlamıyla yeniden kullandığı eski bir koddur.

EBADR
Linux 53macOS —

Invalid request descriptor

Geçersiz istek tanımlayıcısı. Bazı sürücülerin kendi anlamıyla yeniden kullandığı eski bir koddur.

EXFULL
Linux 54macOS —

Exchange full

Değiş tokuş dolu. Linux'ta pratik kullanımı olmayan eski bir koddur.

ENOANO
Linux 55macOS —

No anode

«anode» yok. Linux'ta pratik kullanımı olmayan eski bir koddur.

EBADRQC
Linux 56macOS —

Invalid request code

Geçersiz istek kodu. Eski bir koddur; bazı sürücüler desteklemedikleri komutlar için kullanır.

EBADSLT
Linux 57macOS —

Invalid slot

Geçersiz slot. Linux'ta pratik kullanımı olmayan eski bir koddur.

EBFONT
Linux 59macOS —

Bad font file format

Hatalı yazı tipi dosyası biçimi. Linux'ta pratik kullanımı olmayan eski bir koddur.

ENOSTR
Linux 60macOS 99

Device not a stream

macOS: Not a STREAM

Aygıt bir STREAM değil. Linux'un uygulamadığı System V STREAMS arayüzüne aittir.

ENODATA
Linux 61macOS 96

No data available

macOS: No message available on STREAM

Kullanılabilir veri yok. Linux'ta genişletilmiş öznitelik yoksa getxattr bunu döndürür; macOS'ta bu durum ENOATTR'dir.

ETIME
Linux 62macOS 101

Timer expired

macOS: STREAM ioctl timeout

Bir zamanlayıcının süresi doldu. STREAMS'ten gelir; Linux'ta bazı sürücüler ve io_uring, süre sınırlı işlemler için kullanır.

ENOSR
Linux 63macOS 98

Out of streams resources

macOS: No STREAM resources

Linux'un uygulamadığı bir arayüz olan STREAMS'in kaynakları tükendi.

ENONET
Linux 64macOS —

Machine is not on the network

Makine ağda değil. Az kullanılan eski bir koddur.

ENOPKG
Linux 65macOS —

Package not installed

Paket kurulu değil. Eski bir koddur; bazı alt sistemler, örneğin bir şifreleme modülü gibi bir modül eksik olduğunda kullanır.

EREMOTE
Linux 66macOS 71

Object is remote

macOS: Too many levels of remote in path

Nesne uzakta. NFS'te başka bir sunucudan dışa aktarılan bir yolu belirtir.

ENOLINK
Linux 67macOS 97

Link has been severed

Bağlantı koptu. Eski bir koddur; bazı sürücüler aygıtla bağlantı kesildiğinde kullanır.

EADV
Linux 68macOS —

Advertise error

«advertise» hatası. Linux'ta kullanılmayan, RFS'ten kalma eski bir koddur.

ESRMNT
Linux 69macOS —

Srmount error

«srmount» hatası. Linux'ta kullanılmayan, RFS'ten kalma eski bir koddur.

ECOMM
Linux 70macOS —

Communication error on send

Gönderme sırasında iletişim hatası. Eski bir koddur; bazı ağ ve USB sürücüleri kullanır.

EPROTO
Linux 71macOS 100

Protocol error

Protokol hatası: karşı uç veya aygıt beklenmedik bir yanıt verdi. USB aygıtlarında ve bir alışverişin ortasında kesilen bağlantılarda görülür.

EMULTIHOP
Linux 72macOS 95

Multihop attempted

Çok atlamalı (multihop) bir erişim denendi. RFS'ten kalma eski bir koddur.

EDOTDOT
Linux 73macOS —

RFS specific error

RFS'e özgü hata. Linux'ta kullanılmaz.

EBADMSG
Linux 74macOS 94

Bad message

İleti hatalı biçimlendirilmiş veya bozuk. ext4, XFS ve Btrfs, meta veri sağlama toplamı tutmadığında bunu EFSBADCRC takma adıyla döndürür.

Aynı değer:EFSBADCRC

EOVERFLOW
Linux 75macOS 84

Value too large for defined data type

macOS: Value too large to be stored in data type

Değer hedef veri türüne sığmıyor; örneğin büyük dosya desteği olmadan derlenmiş 32 bitlik bir programın 2 GB'tan büyük bir dosyayı açması.

ENOTUNIQ
Linux 76macOS —

Name not unique on network

Ad ağda benzersiz değil. Eski bir koddur.

EBADFD
Linux 77macOS —

File descriptor in bad state

Dosya tanımlayıcısı hatalı bir durumda. ALSA ve bazı sürücüler, aygıt hazır olmadığında kullanır.

EREMCHG
Linux 78macOS —

Remote address changed

Uzak adres değişti. Eski bir koddur.

ELIBACC
Linux 79macOS —

Can not access a needed shared library

Gerekli bir paylaşılan kitaplığa erişilemiyor. a.out ikili dosyalarından kalma eski bir koddur.

ELIBBAD
Linux 80macOS —

Accessing a corrupted shared library

Paylaşılan kitaplık bozuk. a.out ikili dosyalarından kalma eski bir koddur.

ELIBSCN
Linux 81macOS —

.lib section in a.out corrupted

a.out ikili dosyasının .lib bölümü bozuk. Eski bir koddur.

ELIBMAX
Linux 82macOS —

Attempting to link in too many shared libraries

Çok fazla paylaşılan kitaplık bağlanmaya çalışıldı. a.out'tan kalma eski bir koddur.

ELIBEXEC
Linux 83macOS —

Cannot exec a shared library directly

Paylaşılan bir kitaplık doğrudan çalıştırılamaz. a.out'tan kalma eski bir koddur.

EILSEQ
Linux 84macOS 92

Invalid or incomplete multibyte or wide character

macOS: Illegal byte sequence

Bayt dizisi karakter kodlaması için geçersiz; örneğin iconv ile veya çok baytlı fonksiyonlarla dönüştürülen, geçerli UTF-8 olmayan bir metin.

ERESTART
Linux 85macOS —

Interrupted system call should be restarted

Kesilen çağrının yeniden başlatılması gerekir. Çekirdeğin iç kullanımı içindir ve programlara ulaşmamalıdır.

ESTRPIPE
Linux 86macOS —

Streams pipe error

STREAMS pipe hatası. ALSA, ses aygıtı askıya alındığında bunu döndürür.

EUSERS
Linux 87macOS 68

Too many users

Çok fazla kullanıcı var. Disk kotası sistemi, tablosu dolduğunda döndürür ve nadir görülür.

ENOTSOCK
Linux 88macOS 38

Socket operation on non-socket

Soket olmayan bir tanımlayıcı üzerinde soket işlemi kullanıldı.

EDESTADDRREQ
Linux 89macOS 39

Destination address required

Hedef adres eksik: bağlantısız bir soket üzerinden nereye gideceği belirtilmeden gönderim yapıldı.

EMSGSIZE
Linux 90macOS 40

Message too long

İleti soket için çok büyük; örneğin parçalamaya izin verilmediğinde en büyük boyuttan veya MTU'dan büyük bir UDP datagramı.

EPROTOTYPE
Linux 91macOS 41

Protocol wrong type for socket

Protokol soket türüne uymuyor.

ENOPROTOOPT
Linux 92macOS 42

Protocol not available

İstenen soket seçeneği veya protokol kullanılamıyor; örneğin çekirdeğin tanımadığı bir setsockopt seçeneği.

EPROTONOSUPPORT
Linux 93macOS 43

Protocol not supported

Protokol desteklenmiyor; örneğin çekirdek modülü yüklenmediği için.

ESOCKTNOSUPPORT
Linux 94macOS 44

Socket type not supported

Soket türü bu adres ailesinde desteklenmiyor.

EOPNOTSUPP
Linux 95macOS 102

Operation not supported

macOS: Operation not supported on socket

İşlem soket veya nesne tarafından desteklenmiyor. Linux'ta ENOTSUP ile aynı değere sahiptir ve birçok dosya sistemi, fallocate veya genişletilmiş öznitelikler gibi uygulamadığı işlevler için bunu döndürür.

ENOTSUP
Linux 95macOS 45

Operation not supported

İşlem desteklenmiyor. Linux'ta EOPNOTSUPP (95) ile aynı değere sahiptir; macOS'ta farklı kodlardır.

EPFNOSUPPORT
Linux 96macOS 46

Protocol family not supported

Protokol ailesi desteklenmiyor.

EAFNOSUPPORT
Linux 97macOS 47

Address family not supported by protocol

macOS: Address family not supported by protocol family

Adres ailesi desteklenmiyor; IPv6'nın devre dışı olduğu bir sistemde veya konteynerde IPv6 kullanıldığında tipiktir.

EADDRINUSE
Linux 98macOS 48

Address already in use

Adres ve port zaten kullanımda: başka bir süreç bu portu dinliyor ya da önceki bağlantı hâlâ TIME_WAIT durumunda. Süreci ss -ltnp veya lsof -i :PORT ile bulun ya da SO_REUSEADDR kullanın.

EADDRNOTAVAIL
Linux 99macOS 49

Cannot assign requested address

macOS: Can't assign requested address

İstenen adres atanamıyor: IP makinenin hiçbir arayüzüne ait değil ya da giden bağlantılar için geçici portlar tükendi.

ENETDOWN
Linux 100macOS 50

Network is down

Ağ arayüzü kapalı.

ENETUNREACH
Linux 101macOS 51

Network is unreachable

Hedef ağa ulaşılamıyor, çünkü ona giden bir rota yok. Yönlendirme tablosunu ve ağ geçidini kontrol edin; IPv6 bağlantısı olmadan IPv6 üzerinden bağlanırken de olur.

ENETRESET
Linux 102macOS 52

Network dropped connection on reset

Ağ bağlantıyı sıfırladı; örneğin bir keepalive başarısız olduğunda.

ECONNABORTED
Linux 103macOS 53

Software caused connection abort

Bağlantı yerel tarafta iptal edildi; örneğin istemci, sunucu bağlantıyı accept ile kabul etmeden önce kapattığı için.

ECONNRESET
Linux 104macOS 54

Connection reset by peer

Karşı uç bağlantıyı bir RST ile aniden kesti («Connection reset by peer»): uzak süreç kapandı, bir güvenlik duvarı veya yük dengeleyici boşta kalan bağlantıyı kesti ya da karşı tarafın beklemediği veriler gönderildi.

ENOBUFS
Linux 105macOS 55

No buffer space available

Ağ işlemi için çekirdekte kullanılabilir arabellek alanı yok; genellikle yoğun trafikte veya soket kuyrukları dolu olduğunda görülür.

EISCONN
Linux 106macOS 56

Transport endpoint is already connected

macOS: Socket is already connected

Soket zaten bağlı.

ENOTCONN
Linux 107macOS 57

Transport endpoint is not connected

macOS: Socket is not connected

Soket bağlı değil: bağlanmadan önce gönderme veya alma denendi ya da bağlantı zaten kapandı. Bir FUSE bağlamasında, süreci öldüğünde «Transport endpoint is not connected» olarak görünür; fusermount -u ile ayırarak düzeltilir.

ESHUTDOWN
Linux 108macOS 58

Cannot send after transport endpoint shutdown

macOS: Can't send after socket shutdown

Soketin bu yönü shutdown ile kapatıldıktan sonra gönderim yapılamaz.

ETOOMANYREFS
Linux 109macOS 59

Too many references: cannot splice

macOS: Too many references: can't splice

Çok fazla başvuru var; Linux'ta bir Unix soketi üzerinden çok fazla iç içe tanımlayıcı geçirildiğinde.

ETIMEDOUT
Linux 110macOS 60

Connection timed out

macOS: Operation timed out

Hedef yanıt vermediği için bağlantı zaman aşımına uğradı. Genellikle paketleri sessizce düşüren bir güvenlik duvarından, kapalı bir ana bilgisayardan veya hedefe ulaşmayan bir rotadan kaynaklanır.

ECONNREFUSED
Linux 111macOS 61

Connection refused

Hedef bağlantıyı reddetti: makine yanıt veriyor ama o portu dinleyen yok ya da bir güvenlik duvarı ret yanıtı veriyor. Hizmetin çalıştığını ve yalnızca 127.0.0.1'i değil, doğru arayüzü dinlediğini doğrulayın.

EHOSTDOWN
Linux 112macOS 64

Host is down

Hedef ana bilgisayar kapalı.

EHOSTUNREACH
Linux 113macOS 65

No route to host

Ana bilgisayara rota yok: yerel ağda ARP'ye yanıt vermiyor ya da bir yönlendirici veya güvenlik duvarı ona ulaşılamadığını bildiriyor.

EALREADY
Linux 114macOS 37

Operation already in progress

Sokette zaten devam eden bir işlem var; örneğin henüz tamamlanmamış, engellemeyen bir connect.

EINPROGRESS
Linux 115macOS 36

Operation now in progress

İşlem devam ediyor: engellemeyen bir connect başladı ve daha sonra tamamlanacak. Hata değildir; poll veya select ile beklemek gerekir.

ESTALE
Linux 116macOS 70

Stale file handle

macOS: Stale NFS file handle

Dosya tanıtıcısı eskimiş: NFS'te dosya veya dizin sunucuda silinmiş ya da değiştirilmiş. Yolu yeniden açarak veya yeniden bağlayarak çözülür.

EUCLEAN
Linux 117macOS —

Structure needs cleaning

Yapının temizlenmesi gerekiyor: dosya sistemi bozulma algıladı (ext4 ve XFS'te EFSCORRUPTED takma adıyla). Dosya sistemini ayırın ve fsck veya xfs_repair çalıştırın.

Aynı değer:EFSCORRUPTED

ENOTNAM
Linux 118macOS —

Not a XENIX named type file

XENIX adlandırılmış dosyası değil. Kullanılmayan eski bir koddur.

ENAVAIL
Linux 119macOS —

No XENIX semaphores available

Kullanılabilir XENIX semaforu yok. Kullanılmayan eski bir koddur.

EISNAM
Linux 120macOS —

Is a named type file

Bir XENIX adlandırılmış dosyasıdır. Kullanılmayan eski bir koddur.

EREMOTEIO
Linux 121macOS —

Remote I/O error

Uzak G/Ç hatası; örneğin bir I2C aygıtından veya yanıt vermeyen uzak bir diskten.

EDQUOT
Linux 122macOS 69

Disk quota exceeded

macOS: Disc quota exceeded

Kullanıcının veya grubun disk kotası aşıldı.

ENOMEDIUM
Linux 123macOS —

No medium found

Aygıtta ortam yok; örneğin disk takılı olmayan bir sürücü veya boş bir kart okuyucu.

EMEDIUMTYPE
Linux 124macOS —

Wrong medium type

Ortam türü yanlış.

ECANCELED
Linux 125macOS 89

Operation canceled

İşlem iptal edildi; örneğin eşzamansız bir G/Ç veya bir io_uring beklemesi.

ENOKEY
Linux 126macOS —

Required key not available

Gerekli anahtar çekirdek anahtarlığında (keyring) yok. fscrypt veya eCryptfs gibi şifreli dosya sistemlerinde, anahtar yüklenmediğinde görülür.

EKEYEXPIRED
Linux 127macOS —

Key has expired

Anahtarın süresi doldu. PAM ve Kerberos da parolanın veya biletin süresi dolduğunda kullanır.

EKEYREVOKED
Linux 128macOS —

Key has been revoked

Anahtar iptal edildi.

EKEYREJECTED
Linux 129macOS —

Key was rejected by service

Hizmet anahtarı reddetti.

EOWNERDEAD
Linux 130macOS 105

Owner died

macOS: Previous owner died

Sağlam (robust) bir mutex'in sahibi, onu serbest bırakmadan öldü. Yeni sahip, korunan durumu tutarlı hâle getirmeli ve pthread_mutex_consistent'i çağırmalıdır.

ENOTRECOVERABLE
Linux 131macOS 104

State not recoverable

Sağlam bir mutex'in koruduğu durum kurtarılamaz, çünkü önceki sahibi öldü ve kimse durumu tutarlı olarak işaretlemedi.

ERFKILL
Linux 132macOS —

Operation not possible due to RF-kill

Wi-Fi veya Bluetooth radyosu RF-kill ile engellendiği için işlem yapılamıyor. rfkill list'i, fiziksel anahtarı veya uçak modu tuşunu kontrol edin.

EHWPOISON
Linux 133macOS —

Memory page has hardware error

Bellek sayfasında donanım hatası var ve çekirdek onu zehirlenmiş olarak işaretledi.

EFTYPE
Linux 134macOS 79

Inappropriate file type or format

Dosya türü işlem için uygun değil. macOS ve BSD'de uzun zamandır vardır; Linux'a yakın zamanda eklendi.

EPROCLIM
Linux —macOS 67

Too many processes

Çok fazla süreç var. BSD bunu süreç sınırı için tanımlar, ancak pratikte fork EAGAIN döndürür.

EBADRPC
Linux —macOS 72

RPC struct is bad

RPC yapısı hatalı (NFS'in kullandığı Sun RPC).

ERPCMISMATCH
Linux —macOS 73

RPC version wrong

RPC sürümü uyuşmuyor (NFS'in kullandığı Sun RPC).

EPROGUNAVAIL
Linux —macOS 74

RPC program not available

macOS: RPC prog. not avail

RPC programı sunucuda kullanılamıyor.

EPROGMISMATCH
Linux —macOS 75

RPC program version wrong

macOS: Program version wrong

RPC programının sürümü uyuşmuyor.

EPROCUNAVAIL
Linux —macOS 76

RPC bad procedure for program

macOS: Bad procedure for program

Prosedür RPC programında yok.

EAUTH
Linux —macOS 80

Authentication error

Kimlik doğrulama hatası; örneğin bir NFS paylaşımını bağlarken.

ENEEDAUTH
Linux —macOS 81

Need authenticator

İşlem için bir kimlik doğrulayıcı gerekiyor.

EPWROFF
Linux —macOS 82

Device power is off

Aygıt kapalı.

EDEVERR
Linux —macOS 83

Device error, e.g. paper out

Aygıt hatası; örneğin kâğıdı biten bir yazıcı.

EBADEXEC
Linux —macOS 85

Bad executable

Yürütülebilir dosya geçersiz.

EBADARCH
Linux —macOS 86

Bad CPU type in executable

Yürütülebilir dosya başka bir CPU türü içindir; örneğin Rosetta 2 olmadan Apple Silicon'lu bir Mac'te yalnızca x86_64 olan bir ikili dosya ya da Intel'li bir Mac'te ARM ikili dosyası.

ESHLIBVERS
Linux —macOS 87

Shared library version mismatch

Paylaşılan kitaplığın sürümü uyuşmuyor.

EBADMACHO
Linux —macOS 88

Malformed Macho file

Mach-O dosyası hatalı biçimlendirilmiş veya bozuk.

ENOATTR
Linux —macOS 93

Attribute not found

Genişletilmiş öznitelik yok; Linux'taki ENODATA'nın karşılığıdır. xattr ile görülür; örneğin com.apple.quarantine özniteliği olmayan bir dosyadan onu kaldırmaya çalışırken.

ENOPOLICY
Linux —macOS 103

No such policy registered

MAC Framework'te bu adla kayıtlı bir politika yok.

EQFULL
Linux —macOS 106

Interface output queue is full

Ağ arayüzünün çıkış kuyruğu dolu.

ENOTCAPABLE
Linux —macOS 107

Capabilities insufficient

Yetenekler yetersiz: bir korumalı alanın (sandbox) kısıtladığı çağrılar bunu döndürür.

SIGSinyaller33
SIGHUP
Linux 1macOS 1

Hangup

Süreci denetleyen terminal kapandı veya SSH oturumu kesildi. nginx, sshd veya rsyslog gibi birçok arka plan hizmeti bu sinyali yapılandırmayı yeniden okuma isteği olarak kullanır; nohup, tmux ve screen, çıkışta süreçleri kapatmasını önler.

Süreci sonlandırır
SIGINT
Linux 2macOS 2

Interrupt

Klavyeden Ctrl+C ile kesme. Program düzgün sonlanmak için bu sinyali yakalayabilir. Çıkış kodu 130.

Süreci sonlandırır
SIGQUIT
Linux 3macOS 3

Quit

Klavyeden Ctrl+\ ile çıkış. Süreci bellek dökümüyle sonlandırır; JVM ise bunu iş parçacıklarının durumunu yazdırmak için kullanır.

Bellek dökümüyle sonlandırır
SIGILL
Linux 4macOS 4

Illegal instruction

İşlemci geçersiz bir komutla karşılaştı: daha yeni bir CPU için derlenmiş bir ikili dosya (örneğin AVX2 veya AVX-512'yi desteklemeyen bir işlemcide bunlarla derlenmiş kod), bozuk kod veya veriye atlama.

Bellek dökümüyle sonlandırır
SIGTRAP
Linux 5macOS 5

Trace/breakpoint trap

Hata ayıklama tuzağı: hata ayıklayıcılar kesme noktaları için kullanır. Hata ayıklayıcı yokken gelirse genellikle programın kendisinin algıladığı bir hatadır; örneğin macOS'taki Swift denetimleri.

Bellek dökümüyle sonlandırır
SIGABRT
Linux 6macOS 6

Aborted

Süreç abort() çağırdı: başarısız bir doğrulama (assertion), yakalanmamış bir C++ istisnası veya C kitaplığının algıladığı bir heap bozulması («double free or corruption»). Çıkış kodu 134.

Bellek dökümüyle sonlandırır

Aynı değer:SIGIOT

SIGBUS
Linux 7macOS 10

Bus error

Veri yolu hatası: bazı mimarilerde hizalanmamış belleğe erişim ya da dosya kısaltıldığı için artık var olmayan, mmap ile eşlenmiş bir dosya bölümüne erişim. /dev/shm dolduğunda da olur.

Bellek dökümüyle sonlandırır
SIGFPE
Linux 8macOS 8

Floating point exception

Aritmetik istisna. Adına rağmen en yaygın nedeni tamsayının sıfıra bölünmesidir.

Bellek dökümüyle sonlandırır
SIGKILL
Linux 9macOS 9

Killed

Süreci hemen sonlandırır: yakalanamaz, engellenemez ve yok sayılamaz. Bunu kill -9, bellek tükendiğinde çekirdeğin OOM killer'ı ve bir konteyner bellek sınırını aştığında (OOMKilled) veya SIGTERM'den sonra zamanında sonlanmadığında Docker ya da Kubernetes gönderir. Çıkış kodu 137.

Süreci sonlandırırYakalanamaz
SIGUSR1
Linux 10macOS 30

User defined signal 1

Her uygulamanın kendi amacıyla kullanabileceği serbest bir sinyal; örneğin dd ilerlemesini bildirir, nginx günlükleri yeniden açar.

Süreci sonlandırır
SIGSEGV
Linux 11macOS 11

Segmentation fault

Bölüt ihlali («Segmentation fault»): geçersiz belleğe erişim; örneğin boş bir işaretçinin başvurusunu çözmek, dizinin sınırları dışına çıkmak veya sonsuz özyinelemeyle yığını taşırmak. Çıkış kodu 139.

Bellek dökümüyle sonlandırır
SIGUSR2
Linux 12macOS 31

User defined signal 2

Her uygulamanın kendi amacıyla kullanabileceği ikinci serbest sinyal.

Süreci sonlandırır
SIGPIPE
Linux 13macOS 13

Broken pipe

Okuyucusu olmayan bir pipe'a veya sokete yazma. Okuyucunun önce sonlandığı cmd | head örneğinde normaldir; sunucular genellikle bu sinyali yok sayar ve EPIPE hatasını işler. Çıkış kodu 141.

Süreci sonlandırır
SIGALRM
Linux 14macOS 14

Alarm clock

alarm veya setitimer ile kurulan zamanlayıcının süresi doldu.

Süreci sonlandırır
SIGTERM
Linux 15macOS 15

Terminated

Düzgün sonlanma isteği. kill, systemctl stop, docker stop ve bir pod silindiğinde Kubernetes'in varsayılan sinyalidir; süreç bağlantılarını kapatıp çıkmalıdır. Çıkış kodu 143.

Süreci sonlandırır
SIGSTKFLT
Linux 16macOS —

Stack fault

Yardımcı işlemci yığın hatası. Güncel Linux'ta kullanılmaz.

Süreci sonlandırır
SIGCHLD
Linux 17macOS 20

Child exited

Bir alt süreç sonlandı, durdu veya devam etti. Üst süreç onu wait ile toplamalıdır; toplamazsa alt süreç zombi olarak kalır.

Yok sayılır

Aynı değer:SIGCLD

SIGCONT
Linux 18macOS 19

Continued

Kabuktaki fg ve bg komutlarının yaptığı gibi, durdurulmuş bir süreci sürdürür.

Süreci sürdürür
SIGSTOP
Linux 19macOS 17

Stopped (signal)

Süreci durdurur; yakalanamaz ve yok sayılamaz. SIGCONT ile sürdürülür.

Süreci durdururYakalanamaz
SIGTSTP
Linux 20macOS 18

Stopped

Terminalden Ctrl+Z ile durdurma. SIGSTOP'tan farklı olarak program bu sinyali yakalayabilir.

Süreci durdurur
SIGTTIN
Linux 21macOS 21

Stopped (tty input)

Arka plandaki bir süreç terminalden okumaya çalıştı.

Süreci durdurur
SIGTTOU
Linux 22macOS 22

Stopped (tty output)

Arka plandaki bir süreç, stty tostop etkinken terminale yazmaya veya terminalin ayarlarını değiştirmeye çalıştı.

Süreci durdurur
SIGURG
Linux 23macOS 16

Urgent I/O condition

Bir sokete acil (bant dışı) veri geldi. Go bunu goroutine'leri kesmek için dahili olarak kullanır.

Yok sayılır
SIGXCPU
Linux 24macOS 24

CPU time limit exceeded

Sürecin CPU süresi sınırı aşıldı (ulimit -t).

Bellek dökümüyle sonlandırır
SIGXFSZ
Linux 25macOS 25

File size limit exceeded

Sürece izin verilen en büyük dosya boyutu aşıldı (ulimit -f).

Bellek dökümüyle sonlandırır
SIGVTALRM
Linux 26macOS 26

Virtual timer expired

Yalnızca sürecin CPU süresini sayan sanal zamanlayıcının süresi doldu.

Süreci sonlandırır
SIGPROF
Linux 27macOS 27

Profiling timer expired

Profil oluşturucuların kullandığı profil zamanlayıcısının süresi doldu.

Süreci sonlandırır
SIGWINCH
Linux 28macOS 28

Window changed

Terminal penceresinin boyutu değişti; tam ekran programlar kendilerini yeniden çizmek için kullanır.

Yok sayılır
SIGIO
Linux 29macOS 23

input/output possible signal

O_ASYNC ile yapılandırılmış bir tanımlayıcıda G/Ç kullanılabilir. Linux'ta SIGPOLL aynı sinyaldir.

Süreci sonlandırır

Aynı değer:SIGPOLL

SIGPWR
Linux 30macOS —

Power failure

Bir UPS yazılımının init sistemine bildirdiği güç kesintisi.

Süreci sonlandırır
SIGSYS
Linux 31macOS 12

Bad system call

Hatalı sistem çağrısı. Günümüzde olağan nedeni, konteynerlerde olduğu gibi çağrıyı engelleyen bir seccomp filtresidir.

Bellek dökümüyle sonlandırır
SIGEMT
Linux —macOS 7

EMT trap

Öykünme tuzağı (EMT). macOS ve BSD'de vardır, ancak x86 ve ARM üzerindeki Linux'ta yoktur.

Bellek dökümüyle sonlandırır
SIGINFO
Linux —macOS 29

Information request

macOS ve BSD terminalinde Ctrl+T ile bilgi isteği; birçok komut ilerlemesini göstererek yanıt verir.

Yok sayılır
$?Çıkış kodları24
0EXIT_SUCCESS

Komut başarıyla tamamlandı. Başarı anlamına gelen tek koddur: diğer her değer bir hatayı gösterir.

C
1EXIT_FAILURE

Genel hata; ne anlama geldiğine her program kendisi karar verir. Ayrıntı genellikle komutun stderr'e yazdıklarındadır. grep ve diff bunu başka bir anlamda kullanır: «eşleşme bulunamadı» veya «dosyalar farklı».

C
2Misuse of shell builtins

Kabuğun yerleşik bir komutunun yanlış kullanımı veya betikte sözdizimi hatası. Birçok program da geçersiz seçenekler için, grep ise gerçek hatalar için kullanır.

Bash
64EX_USAGE

Komut yanlış kullanıldı: bağımsız değişkenler eksik veya fazla ya da bir seçenek hatalı.

sysexits.h
65EX_DATAERR

Giriş verilerinin biçimi hatalı.

sysexits.h
66EX_NOINPUT

Bir giriş dosyası yok veya okunamıyor.

sysexits.h
67EX_NOUSER

Belirtilen kullanıcı yok; özellikle e-posta programları kullanır.

sysexits.h
68EX_NOHOST

Ana bilgisayar adı yok.

sysexits.h
69EX_UNAVAILABLE

Gerekli bir hizmet kullanılamıyor ya da başka bir kategoriye uymayan bir şey başarısız oldu.

sysexits.h
70EX_SOFTWARE

Programın iç hatası.

sysexits.h
71EX_OSERR

İşletim sistemi hatası; örneğin fork yapılamaması veya pipe oluşturulamaması.

sysexits.h
72EX_OSFILE

/etc/passwd gibi bir sistem dosyası eksik veya hatalı.

sysexits.h
73EX_CANTCREAT

Çıktı dosyası oluşturulamıyor.

sysexits.h
74EX_IOERR

Bir dosya okunurken veya yazılırken giriş/çıkış hatası.

sysexits.h
75EX_TEMPFAIL

Geçici hata: daha sonra yeniden denemek gerekir. E-posta sunucuları iletiyi kuyrukta bırakmak için kullanır.

sysexits.h
76EX_PROTOCOL

Uzak sistem protokole uymayan bir yanıt verdi.

sysexits.h
77EX_NOPERM

İşlem için izinler yetersiz.

sysexits.h
78EX_CONFIG

Yapılandırmada bir hata var.

sysexits.h
124Timed out

Belirtilen süreyi aştığı için timeout komutu onu sonlandırdı.

GNU timeout
125Container failed to run

docker run, konteyneri çalıştırmadan önce kendisi başarısız oldu; örneğin hatalı bir seçenek veya daemon hatası nedeniyle. GNU timeout da başarısız olan kendisi olduğunda bunu döndürür.

Docker
126Command invoked cannot execute

Dosya var ama çalıştırılamıyor: yürütme izni eksik, bir dizin ya da başka bir mimari için bir ikili dosya. Docker'da konteynerin komutu yürütülebilir değil.

POSIX
127Command not found

Komut bulunamadı: kurulu değil, PATH'te değil veya adı yanlış yazılmış. Betiklerde #! satırındaki yorumlayıcı eksik olduğunda da görülür; Docker'da ise konteynerin komutu imajda olmadığında.

POSIX
128Fatal error

128'den büyük kodlar süreci bir sinyalin sonlandırdığını gösterir, ancak 128 hiçbir sinyale karşılık gelmez. Git bunu tüm ölümcül hataları («fatal: …») için kullanır; örneğin var olmayan bir depo veya klonlama sırasında kimlik doğrulama hatası.

Git
255Exit status out of range

Çıkış kodu aralığın dışına çıktı: yalnızca 8 bit korunduğu için exit -1, 255 olarak gelir. ssh de bağlantı veya kimlik doğrulama başarısız olduğunda, uzak komutun kodundan ayırt etmek için bunu döndürür.

POSIX

Linux değerleri x86, x86-64 ve ARM içindir; Alpha, MIPS, SPARC ve PA-RISC bazı errno değerlerini ve sinyalleri farklı numaralandırır. İngilizce iletiler, glibc'de strerror ve strsignal'ın gösterdikleridir; farklı olduklarında macOS'takiler de verilir. 128'den büyük çıkış kodları 128 artı sinyal numarası olarak yorumlanır; bu, bash, Docker ve Kubernetes'in kuralıdır.

Nasıl çalışır

Linux'ta bir sistem çağrısı başarısız olduğunda -1 döndürür ve errno değişkenine nedenini belirten bir sayı yazar: 2, ENOENT, yani dosya yok; 13, EACCES, yani izin reddedildi. strerror bu sayıyı ekranda görülen metne, örneğin «No such file or directory» metnine dönüştürür. Python bunu [Errno 13] olarak, Node.js code: 'ECONNREFUSED' olarak, Go, Rust veya Java ise aynı metinle gösterir. 1'den 34'e kadar olan numaralar özgün Unix'ten gelir ve tüm sistemlerde aynıdır; sonrakileri her sistem kendi bildiği gibi numaralandırdı, bu yüzden ECONNREFUSED Linux'ta 111, macOS'ta 61'dir. Ad taşınabilir; numara değil.

Sinyaller, çekirdeğin veya başka bir sürecin bir sürece gönderdiği bildirimlerdir: Ctrl+C'ye basıldığında SIGINT, sürecin sonlanmasını istemek için SIGTERM, onu sormadan sonlandırmak için SIGKILL, geçersiz belleğe eriştiğinde SIGSEGV. Her birinin varsayılan bir eylemi vardır ve neredeyse hepsi başka bir şey yapmak için yakalanabilir. Bir sinyal bir süreci öldürdüğünde kabuk, çıkış kodu olarak 128 artı sinyal numarasını bildirir: 137 SIGKILL (9), 139 SIGSEGV (11) ve 143 SIGTERM (15) demektir. Docker ve Kubernetes de aynı kuralı kullanır.

Çıkış kodu, bir programın sonlanırken bıraktığı sayıdır: 0 başarı, diğer her değer hata demektir. Yalnızca 8 bit korunur, bu yüzden 0 ile 255 arasındadır. Pek az kural vardır: 126 ve 127'yi kabuk, komutu çalıştıramadığında veya bulamadığında kullanır; 64 ile 78 arasını BSD'nin sysexits.h dosyası tanımlar; gerisine her program kendisi karar verir, örneğin hiçbir şey bulamadığında 1 döndüren grep.

Örnekler

Last State: Terminated · Reason: OOMKilled · Exit Code: 137137 = 128 + 9 · SIGKILLKonteyner bellek sınırını aştı ve çekirdek onu SIGKILL ile öldürdü. resources.limits.memory'deki sınırı yükseltmek veya sürecin neden bu kadar bellek tükettiğini araştırmak gerekir; yeniden başlatmak sorunu çözmez.
Error: connect ECONNREFUSED 127.0.0.1:5432ECONNREFUSED · Linux 111 · macOS 61 · Connection refusedNode.js PostgreSQL'e bağlanamadı, çünkü 5432 numaralı portu dinleyen yok. Uygulama bir konteynerde çalışıyorsa 127.0.0.1 makinenin değil konteynerin kendisidir: veritabanı hizmetinin adını kullanmak gerekir.
OSError: [Errno 48] Address already in useEADDRINUSE · Linux 98 · macOS 4848, programın macOS'ta çalıştığını ele verir: Linux'ta aynı hata 98'dir. Her iki durumda da portu başka bir süreç kullanıyor; hangisi olduğunu lsof -i :PORT gösterir.

Kullanım senaryoları

  • Yalnızca errno numarasını veya adını gösteren Python, Node.js, Go veya C uygulamalarındaki bir hatayı anlamak.
  • Bir Docker konteynerinin neden kapandığını veya bir Kubernetes pod'unun neden yeniden başladığını çıkış kodundan bulmak.
  • 35'ten itibaren Linux'takiyle örtüşmeyen bir macOS errno numarasını doğru ada çevirmek.
  • Başarısız olan bir betiğin, cron görevinin veya CI işinin çıkış kodunu yorumlamak.
  • kill ile hangi sinyalin gönderileceğini seçmek ve süreç onu yakalamazsa ne yapacağını bilmek.
  • Numara yerine ada göre karşılaştıran taşınabilir bir hata işleme kodu yazmak.

Sık sorulan sorular

Exit code 137 ne anlama gelir?

Sürecin 9 numaralı sinyal olan SIGKILL ile sonlandığı anlamına gelir (128 + 9). En yaygın nedeni bellektir: konteyner sınırını aşmıştır ve Kubernetes bunu OOMKilled olarak bildirir ya da çekirdeğin OOM killer'ı bu süreci seçmiştir; bu da dmesg'de «Out of memory: Killed process» olarak kalır. docker kill ile veya süreç SIGTERM'den sonra süresi içinde sonlanmadığında da olur: docker stop'ta 10 saniye, Kubernetes'te 30 saniye.

SIGTERM ile SIGKILL arasındaki fark nedir?

SIGTERM sürecin sonlanmasını ister ve süreç, bağlantıları kapatmak, verileri kaydetmek ve çıkmak için onu yakalayabilir. SIGKILL ile süreci çekirdek anında sonlandırır ve süreç hiçbir şey yapamaz. Doğrusu SIGTERM göndermek, birkaç saniye beklemek ve süreç hâlâ çalışıyorsa ancak o zaman SIGKILL'e başvurmaktır; systemd, docker stop ve Kubernetes de böyle yapar.

Aynı errno neden macOS'ta başka bir numaraya sahip?

Çünkü POSIX adları tanımlar ama numaraları tanımlamaz. 1'den 34'e kadar olanları tüm sistemler özgün Unix'ten devraldı; sonrasında macOS'un türediği BSD ile Linux'un izlediği System V bunları ayrı ayrı numaralandırdı. Bu yüzden karşılaştırmayı her zaman numarayla değil, adla yapmak gerekir: Python'da errno.ECONNREFUSED, Node.js'te err.code veya C'de ilgili sabit ile.

EACCES ile EPERM arasındaki fark nedir?

EACCES («Permission denied»), dosyanın veya yoldaki bir dizinin izinlerinin buna izin vermediği ya da bir ACL'nin veya SELinux'un engellediği anlamına gelir: chmod, chown veya ilgili politikayla çözülür. EPERM («Operation not permitted») ise izinlerden bağımsız olarak işlemin kendisinin ayrıcalık gerektirdiği anlamına gelir; örneğin bir dosyanın sahibini değiştirmek veya başka bir kullanıcının sürecini öldürmek: root, bir capability ya da değiştirilemezlik gibi bir özniteliğin kaldırılması gerekir.

Bir komutun veya konteynerin çıkış kodunu nasıl görürüm?

bash ve zsh'de echo $? son komutun kodunu gösterir; PowerShell'de $LASTEXITCODE. Docker'da docker ps -a bunu STATUS sütununda «Exited (137)» gibi gösterir. Kubernetes'te kubectl describe pod bunu «Last State: Terminated» altında, OOMKilled veya Error gibi nedeniyle birlikte gösterir.