> For the complete documentation index, see [llms.txt](https://turkce-linux.gitbook.io/anasayfa/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://turkce-linux.gitbook.io/anasayfa/processes/process-sonlandirma.md).

# 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.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://turkce-linux.gitbook.io/anasayfa/processes/process-sonlandirma.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
