Türkçe Linux
  • 🏠Anasayfa
  • Başlangıç
    • Tarihçe
    • Bir Linux Dağıtımı Seçimi
    • Dağıtımları İnceleyelim
  • Komut Satırı
    • Kabuk (Shell)
    • pwd (Print Working Directory)
    • cd (Change Directory)
    • ls (List Directories)
    • touch
    • file
    • cat
    • less
    • history
    • cp (Copy)
    • mv (Move)
    • mkdir (Make Directory)
    • rm (Remove)
    • find
    • help
    • man
    • whatis
    • alias
    • exit
  • Metin Ustası
    • stdout (Standard Out)
    • stdin (Standard In)
    • stderr (Standard Error)
    • pipe ve tee
    • env (Environment)
    • cut
    • paste
    • head
    • tail
    • expand ve unexpand
    • join ve split
    • sort
    • tr (Translate)
    • uniq (Unique)
    • wc ve nl
    • grep
  • Gelişmiş Metin Ustası
    • regex (Regular Expressions)
    • Metin Editörleri
    • Vim (Vi Improved)
    • Vim Arama Kalıpları
    • Vim Navigasyon
    • Vim Metin Ekleme
    • Vim Düzenleme
    • Vim Kaydetme ve Çıkma
    • Emacs
    • Emacs Dosyaları Manipüle Etme
    • Emacs Buffer Navigasyonu
    • Emacs Düzenleme
    • Emacs'tan Çıkma ve Yardım
  • Kullanıcı Yönetimi
    • Kullanıcılar ve Gruplar
    • Root
    • /etc/passwd
    • /etc/shadow
    • /etc/group
    • Kullanıcı Yönetim Araçları
  • İzinler
    • Dosya İzinleri
    • İzinlerin Değiştirilmesi
    • Sahiplik İzinleri
    • Umask
    • Setuid
    • Setgid
    • İşlem İzinleri
    • Sticky Bit
  • Processes
    • ps (Processes)
    • Kontrol Terminali
    • Process Detayları
    • Process Yaratma
    • Process Sonlandırma
    • Sinyaller
    • kill (Sonlandırma)
    • niceness
    • Process States
    • /proc filesystem
    • İş Kontrolü
  • Paketler
    • Yazılım Dağıtımı
    • Paket Repositories
    • tar ve gzip
    • Paket Bağımlılıkları
    • rpm ve dpkg
    • yum ve apt
    • Kaynak Kodunu Derleme
Powered by GitBook
On this page
  1. Processes

Process Sonlandırma

Artık bir işlem oluşturulduğunda neler olduğuna göre, artık ihtiyacımız olmadığında ne oluyor? Önceden uyarayım, bazen Linux biraz karanlık bir hal alabilir...

Bir işlem, _exit sistem çağrısını kullanarak çıkabilir, bu işlem kullanılan kaynakları yeniden tahsis için serbest bırakacaktır. Dolayısıyla bir işlem sonlandırılmaya hazır olduğunda, çekirdeğe sonlanma durumunu sonlandırma durumu adı verilen bir şeyle bildirir. En yaygın olarak 0 durumu, işlemin başarılı olduğu anlamına gelir. Ancak, bir işlemi tamamen sonlandırmak için bu yeterli değildir. Ana işlem, wait system call'u kullanarak çocuk işlemin sonlanmasını onaylamalıdır ve bu, çocuk işlemin sonlanma durumunu kontrol eder. Bunu düşünmek korkunç biliyorum, ancak wait çağrısı bir zorunluluktur, sonuçta hangi ebeveyn çocuğunun nasıl öldüğünü bilmek istemez?

Bir işlemi sonlandırmanın başka bir yolu da yakında tartışacağımız sinyallerdir.

Orphan Processes

Bir ana işlem bir çocuk işlemden önce ölürse, çekirdek bir wait çağrısı almayacağını bilir, bu nedenle bunun yerine bu işlemleri "öksüz" yapar ve onları init'in bakımına verir (tüm işlemlerin annesi olduğunu unutmayın). Init, sonunda bu öksüzler için wait system call'u gerçekleştirecek ve böylece ölebilirler.

Zombie Processes

Bir çocuk sonlandığında ve ana işlem henüz wait çağrısını yapmadığında ne olur? Yine de bir çocuk işleminin nasıl sonlandığını görmek istiyoruz, bu nedenle çocuk işlemi bitmiş olsa bile, çekirdek çocuk işlemini bir zombi işlemine dönüştürür. Çocuk işleminin kullandığı kaynaklar hala diğer işlemler için serbest bırakılır, ancak bu zombi için işlem tablosunda hala bir giriş vardır. Zombi işlemleri ayrıca teknik olarak "ölü" oldukları için öldürülemez, bu nedenle onları öldürmek için sinyaller kullanamazsınız. Sonunda, ana işlem wait system call'u çağırırsa, zombi yok olacak, bu "hasat etme" olarak bilinir. Ana işlem bir wait çağrısı yapmazsa, init zombiyi evlat edinir ve otomatik olarak wait gerçekleştirir ve zombiyi kaldırır. İşlem tablosunda yer kapladıkları için çok fazla zombi işleminin olması kötü bir şey olabilir, dolarsa diğer işlemlerin çalışmasını engeller.

PreviousProcess YaratmaNextSinyaller

Last updated 1 year ago