processes 101

 

🔧 1. Process (İşlem) Nedir?

Bir process, Linux'ta çalışan her bir program ya da komuttur. İşletim sistemi çekirdeği (kernel), bu işlemleri yönetir.

📌 Temel Kavramlar:

  • PID (Process ID): Her çalıştırılan işlemin eşsiz bir kimliği vardır. Bu kimlik sayısal bir değerdir ve işlemin sistemdeki sırasını gösterir.

  • Örnek: İlk başlatılan işlem genellikle PID=1 olan systemd'dir.


📊 2. Process Görüntüleme Komutları

ps Komutu:

Yalnızca mevcut terminal oturumunda çalışan işlemleri gösterir.

bash
ps

Çıktı örneği:

css
PID TTY TIME CMD 204 pts/0 00:00:00 bash 205 pts/0 00:00:00 ps

ps aux Komutu:

Sistemdeki tüm kullanıcıların işlemlerini listeler.

bash
ps aux

Açıklamalar:

  • USER: İşlemi başlatan kullanıcı

  • %CPU: CPU kullanım yüzdesi

  • %MEM: RAM kullanım yüzdesi

  • COMMAND: Çalışan komut

top Komutu:

Gerçek zamanlı işlem takibi sağlar. Sürekli yenilenir.

bash
top

Klavye kısa yolları:

  • q: Çık

  • k: Process öldür

  • ↑/↓: Satırlar arasında gezin


🧨 3. Process Yönetimi (Öldürme - Kill Etme)

🔫 kill Komutu:

Bir işlemi sonlandırmak için kullanılır.

bash
kill <PID>

🔥 Sinyaller:

  • SIGTERM (15): Zarifçe durdur. (Varsayılan)

  • SIGKILL (9): Zorla durdur, temizlik yapılmaz.

  • SIGSTOP: İşlemi duraklat (askıya al).

Örnek:

bash
kill -9 1337

🔄 4. Process’lerin Nasıl Başladığı

🌐 Namespaces:

Linux, işlem kaynaklarını ayırmak için “namespace” kullanır. Bu izolasyon, güvenlik ve yönetim açısından çok önemlidir.

🧬 Init Sistemi ve systemd:

  • Sistem açıldığında ilk başlatılan işlem PID=1 olan systemd’dir.

  • Diğer işlemler systemd’nin alt süreçleri (child processes) olarak başlar.


🚀 5. Boot (Başlangıç) Sırasında Process Başlatma

Bazı servisler (örneğin Apache, MySQL) sistem açılırken otomatik başlar.

🔧 systemctl Komutu:

Servisleri yönetmek için kullanılır.

Örnekler:

bash
systemctl start apache2 # Başlat systemctl stop apache2 # Durdur systemctl enable apache2 # Açılışta başlat systemctl disable apache2 # Açılışta başlatma

🎭 6. Foreground ve Background İşlemleri

▶️ Foreground:

Komutları normal yazarsan terminali meşgul eder, işlem bitene kadar başka komut giremezsin.

bash
echo "Hello"

🔙 Background:

Komutun sonuna & eklersen işlem arka planda çalışır.

bash
sleep 10 &

Terminal seni beklemeden devam eder.

Ctrl + Z:

İşlemi duraklatır (suspend eder) ve background’a atar.

🔁 fg Komutu:

Askıya alınan işlemi yeniden foreground'a getirir.

bash
fg