Celil Uyanikoglu

Linux Süreç Yönetimi: Process Komutları Rehberi

Celil Uyanikoglu Celil Uyanikoglu · 23 Nis 2026 · 6 dk okuma

Linux çok görevli (multitasking) bir işletim sistemidir. Aynı anda onlarca, hatta yüzlerce program çalışabilir. Süreç yönetimi, bu programları izlemek, kontrol etmek ve gerektiğinde sonlandırmak için kullanılan temel beceridir.

Süreç (Process) Nedir?

Çalışan her program bir veya daha fazla süreçten oluşur. Her süreç benzersiz bir Process ID (PID) ile tanımlanır. Süreçler bellek, CPU ve diğer sistem kaynaklarını kullanır.

Süreç Türleri

Ön plan süreçleri (foreground): Terminal ile etkileşimli çalışır. Arka plan süreçleri (background): Kullanıcı müdahalesi olmadan çalışır. Daemon'lar: Sistem servisleri, arka planda sürekli çalışır. Zombie süreçler: Sonlanmış ama kayıtları silinmemiş süreçler. Orphan süreçler: Ebeveyni sonlanmış süreçler.

Süreç Durumları

R (Running): Çalışıyor veya çalışmaya hazır. S (Sleeping): Bir olay bekliyor. D (Uninterruptible Sleep): Kesintisiz uyku (genellikle I/O bekliyor). T (Stopped): Durdurulmuş. Z (Zombie): Sonlanmış ama temizlenmemiş.

ps Komutu

Çalışan süreçleri listeler. En temel süreç izleme aracı.

Temel Kullanım

Mevcut terminal süreçleri:

ps

Tüm süreçler (yaygın kullanım):

ps aux

a: Tüm kullanıcıların süreçleri u: Kullanıcı formatı x: Terminal bağlantısı olmayan süreçler

Çıktı Açıklaması

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.1 16844 1232 ? Ss 10:00 0:01 /sbin/init

USER: Süreç sahibi PID: Süreç kimliği %CPU: CPU kullanım yüzdesi %MEM: Bellek kullanım yüzdesi VSZ: Sanal bellek boyutu RSS: Fiziksel bellek kullanımı TTY: Terminal STAT: Süreç durumu START: Başlangıç zamanı TIME: CPU zamanı COMMAND: Komut

Kullanışlı ps Örnekleri

Belirli kullanıcının süreçleri:

ps -u ahmet

Belirli süreci bul:

ps aux | grep nginx

Süreç ağacı:

ps -ejH ps axjf

En çok CPU kullanan süreçler:

ps aux --sort=-%cpu | head -10

En çok bellek kullanan süreçler:

ps aux --sort=-%mem | head -10

Sadece PID ve komut:

ps -eo pid,comm

top Komutu

Gerçek zamanlı süreç izleme aracı. Dinamik olarak güncellenir.

Temel Kullanım

top

Ekran birkaç saniyede bir yenilenir.

Özet Bölümü

Üst kısımda sistem özeti görünür:

Uptime: Sistem açık kalma süresi Load average: 1, 5, 15 dakikalık yük ortalaması Tasks: Toplam, çalışan, uyuyan süreç sayıları CPU: Kullanıcı, sistem, boşta yüzdeleri Memory: RAM ve swap kullanımı

top İçi Komutlar

h: Yardım q: Çık k: Süreç sonlandır (PID sorar) r: Öncelik değiştir (renice) M: Bellek kullanımına göre sırala P: CPU kullanımına göre sırala u: Kullanıcı filtrele 1: Her CPU çekirdeğini ayrı göster c: Tam komut yolunu göster

htop Alternatifi

top'un gelişmiş versiyonu. Renkli arayüz, fare desteği.

htop

Kurulum (yoksa):

sudo apt install htop

htop'ta süreçleri seçip F9 ile sonlandırabilirsiniz.

pgrep ve pidof

Süreç ID'si bulma araçları.

pgrep nginx pidof nginx

pgrep daha esnek, düzenli ifade desteği var:

pgrep -u root # Root süreçleri pgrep -f script # Komut satırında "script" geçenler

kill Komutu

Süreçlere sinyal gönderir. En yaygın kullanım süreç sonlandırma.

Temel Kullanım

kill PID

Varsayılan SIGTERM (15) sinyali gönderir, sürecin düzgün sonlanmasını ister.

Zorla Sonlandırma

kill -9 PID

SIGKILL (9) sinyali, süreç zorla sonlandırılır. Temizlik yapamaz.

Yaygın Sinyaller

1 (SIGHUP): Yapılandırmayı yeniden yükle 2 (SIGINT): Kesinti (Ctrl+C) 9 (SIGKILL): Zorla öldür 15 (SIGTERM): Normal sonlandırma 18 (SIGCONT): Devam et 19 (SIGSTOP): Durdur

Sinyal listesi:

kill -l

killall ve pkill

İsme göre süreç sonlandırma.

killall:

killall firefox

pkill (daha esnek):

pkill -9 firefox pkill -u ahmet # Kullanıcının tüm süreçleri pkill -f "python script.py"

Süreç Önceliği

nice ve renice

Süreç önceliği -20 (en yüksek) ile 19 (en düşük) arasında değişir. Varsayılan 0'dır.

Düşük öncelikle başlatma:

nice -n 10 ./script.sh

Yüksek öncelikle (root gerekir):

sudo nice -n -5 ./onemli_is

Çalışan sürecin önceliğini değiştirme:

renice 10 -p PID sudo renice -5 -p PID

Arka Plan İşlemleri

Komutu arka planda başlatma:

./uzun_islem.sh &

Çalışan işi arka plana atma:

Ctrl+Z ile duraklat, sonra:

bg

Arka plan işlerini listeleme:

jobs

Ön plana getirme:

fg %1

%1 iş numarası.

nohup

Terminal kapansa bile çalışmaya devam eder:

nohup ./script.sh &

Çıktı nohup.out dosyasına yazılır.

Süreç İzleme

/proc Dosya Sistemi

Her sürecin /proc/PID dizininde bilgileri var:

ls /proc/1234/

Yararlı dosyalar:

/proc/PID/status: Süreç durumu /proc/PID/cmdline: Komut satırı /proc/PID/fd/: Açık dosya tanımlayıcıları /proc/PID/maps: Bellek haritası

lsof

Açık dosyaları listeler. Süreçlerin kullandığı kaynakları gösterir.

Bir sürecin açık dosyaları:

lsof -p PID

Bir dosyayı kullanan süreçler:

lsof /var/log/syslog

Bir portu kullanan süreç:

lsof -i :80

strace

Sistem çağrılarını izler. Hata ayıklama için kullanışlı.

strace -p PID strace -f ./program

Kaynak Limitleri

ulimit

Kullanıcı kaynak limitlerini gösterir ve ayarlar.

Tüm limitleri göster:

ulimit -a

Açık dosya limiti:

ulimit -n ulimit -n 4096

Kalıcı ayarlar için /etc/security/limits.conf düzenlenir.

Pratik Senaryolar

Yanıt Vermeyen Programı Sonlandırma

PID'yi bul:

pgrep -f program_adi # veya ps aux | grep program

Önce nazikçe dene:

kill PID

Çalışmazsa zorla:

kill -9 PID

CPU Tüketen Süreci Bulma

top açın, P tuşuna basarak CPU'ya göre sıralayın veya:

ps aux --sort=-%cpu | head -5

Bellek Tüketen Süreci Bulma

ps aux --sort=-%mem | head -5

Tüm Kullanıcı Süreçlerini Sonlandırma

pkill -u kullanici

Dikkat: Bu tehlikeli olabilir.

Sonuç

Süreç yönetimi Linux sistem yönetiminin temel becerisidir. ps, top ve kill komutlarını iyi öğrenin.

Sorunlu süreçleri tespit etmek için top ve htop kullanın. Sonlandırmadan önce SIGTERM deneyin, SIGKILL son çare olsun.

Kaynak tüketen süreçleri izleyin, gerekirse önceliklerini ayarlayın. Uzun işler için arka plan ve nohup kullanmayı unutmayın.

0 Yorum

Yorum Yaz