Süreç Yönetimi (Process Management)
Tarih: 2026-06-15 | Kategori: Linux
Etiketler: Linux
Linux'ta "süreç" (process) terimi, belleğe yüklenen ve işlemcide (CPU) yürütülen bir program olarak tanımlanır. Süreçler, komut satırından çalıştırılan kısa komutlardan, işletim sisteminin açık olduğu süre boyunca çalışan ağ hizmetlerine kadar çeşitlilik gösterebilir.
Süreç Türleri (Types of Processes)
Ön Plan Süreçleri (Foreground Processes)
Varsayılan olarak tüm süreçler ön planda çalışır. Klavyeden girdi alırlar ve çıktıyı ekranda görüntülerler. `pwd` komutunu çalıştırmak, ön plan sürecine iyi bir örnektir.
root@hackerbox:~$ pwd
/root
Bu örnekte, `pwd` komutu tarafından yürütülen süreç ön planda çalıştı, çıktıyı görüntüledi ve görevini tamamladıktan sonra çıktı (sonlandı). Ön plan süreçleri, görevlerini bitirene kadar terminali kilitler ve bu süre zarfında başka işlemlerin yapılmasına izin vermez.
Arka Plan Süreçleri (Background Processes)
Arka plan süreçleri çalıştırıldığında terminali kilitlemez; arka planda çalışmaya başlarlar. Arka plan süreçleri çalışırken, birden fazla süreç paralel olarak çalışabilir.
Bir komutu arka planda çalıştırmak için sonuna `&` karakterini ekleyin. Örneğin, `pwd` komutunu arka planda çalıştıralım:
root@hackerbox:~$ pwd &
[1] + Done pwd
İlk örneğin aksine, `pwd` komutu bir arka plan süreci olarak çalıştırıldığı için geçerli dizinin yolunu yazdırmadı. Bunun yerine, başlattığı arka plan süreci hakkında bilgi verdi.
Farklı Bir Örnek Yapalım
`pwd` komutu doğası gereği görevini hemen tamamlar ve çıkar. Ancak bazı komutlar siz bir durdurma sinyali gönderene kadar sürekli çalışır. `ping` komutu buna iyi bir örnektir.
Ping komutu ile `127.0.0.1` adresine bir ping gönderelim ve bunu arka planda çalıştıralım. Bu, terminalimiz veya çalışan süreç açık kaldığı sürece `127.0.0.1`'e ping istekleri göndermemize izin verirken, terminalimizi diğer görevler için kullanmamıza da olanak tanıyacaktır.
root@hackerbox:~$ ping 127.0.0.1 &
[1] 54017
root@hackerbox:~$
64 bytes from 127.0.0.1: icmp_seq=100 ttl=64 time=0.081 ms
64 bytes from 127.0.0.1: icmp_seq=101 ttl=64 time=0.164 ms
64 bytes from 127.0.0.1: icmp_seq=102 ttl=64 time=0.075 ms
*(Çıktı açıklaması): Terminal, arka planda çalışan ping işleminden gelen yanıtları göstermeye devam eder.*
`ping` gibi bazı komutlar, arka planda çalışırken bile terminale çıktı verebilir. Örnekte görüldüğü gibi, arka planda çalışmasına rağmen ping komutu her saniye terminale çıktı yazdırır. Ancak bu çıktı, diğer görevleri yapmamızı engellemez ve terminali kilitlemez.
Geçerli Terminal Oturumunda Süreçleri Yönetme (Managing Processes in the Current Terminal Session)
`jobs` komutunu kullanarak geçerli terminal oturumumuzda başlatılan arka plan süreçlerini kolayca listeleyebiliriz.
root@hackerbox:~$ jobs
[1] running ping 127.0.0.1
Çıktıya göre, geçerli terminal oturumumuzda arka planda çalışan ve iş numarası 1 olan bir `ping 127.0.0.1` komutumuz var.
Bu arka plan komutunu tekrar ön plana getirmek için `fg` (foreground - ön plan) komutunu kullanabiliriz. `fg` komutunun yanına `%` işaretiyle sürecin iş numarasını yazarız.
root@hackerbox:~$ fg %1
Gördüğümüz gibi süreç tekrar ön planda çalışıyor. Bunu nasıl durdururuz? Klavyedeki `CTRL+C` kısayoluna basarak terminalde çalışan bir programı kolayca durdurabiliriz.
^C
Sistem Genelindeki Süreçleri Yönetme (Managing System-Wide Processes)
Geçerli terminal oturumumuzdaki süreçlere ek olarak, sistem genelinde çalışan süreçler de vardır. Bunlar işletim sistemi, terminal, servis sağlayıcılar tarafından kullanılan süreçler veya arka planda sürekli çalışan programlar olabilir. `ps` komutunu kullanarak sistem genelindeki süreçleri görüntüleyebiliriz.
root@hackerbox:~$ ps
PID TTY TIME CMD
19 pts/1 00:00:00 sh
24 pts/1 00:00:00 ps
Örnekte görüldüğü gibi, sistem genelinde çalışan iki süreç vardır. Biri `sh` sürecini çalıştıran terminal, diğeri ise az önce çalıştırdığımız `ps` komutudur. Daha ayrıntılı bir çıktı için `ps` komutunun `-f` parametresini kullanabiliriz.
root@hackerbox:~$ ps -f
UID PID PPID C STIME TTY TIME CMD
1001 19 1 0 07:20 pts/1 00:00:00 sh
1001 25 19 0 08:04 pts/1 00:00:00 ps -f
Komut çıktısındaki sütunların ayrıntılı açıklamaları şöyledir:
Çalışan Bir Süreci Durdurma (Stopping a Running Process)
Çalışan süreçleri durdurmak için, süreç ön planda çalışıyorsa klavyedeki `CTRL+C` kısayoluna kolayca basabiliriz. Eğer bir arka plan süreciyse, durdurmak için Süreç Kimliği (PID) numarasını bilmemiz gerekir.
Önce süreçleri listeleyelim:
root@hackerbox:~$ ps
Yukarıdaki çıktıda `sh` süreci (19) için PID'ye sahibiz. Bu süreci durdurmak için `kill` komutunu kullanın.
root@hackerbox:~$ kill 19
Süreç yukarıdaki komutla sonlanmazsa, kesme (interrupt) sinyali `-9` ile onu zorla durdurabiliriz (SIGKILL).
root@hackerbox:~$ kill -9 19