1. Home
  2. Docs
  3. Linux
  4. Terminal
  5. htop, ps ve lsof ile Sistem Kaynakları ve Süreç Takibi

htop, ps ve lsof ile Sistem Kaynakları ve Süreç Takibi

Print

Linux tabanlı sistemlerde performans sorunlarını tespit etmek, tıkanıklıkları gidermek ve arka planda çalışan servislerin sağlığını denetlemek için Linux süreç yönetimi araçlarına hakim olmak şarttır. Linux çekirdeği (Kernel), sistemde çalışan her görevi bir süreç (process) olarak ele alır ve her sürece benzersiz bir PID (Process ID) atar.

Bu rehberde, komut satırında süreçleri listelemek, kaynak tüketimini canlı izlemek ve hangi sürecin hangi dosya veya portu kullandığını tespit etmek için kullanılan üç temel aracı (ps, htop, lsof) derinlemesine inceliyoruz.

1. ps Komutu: Anlık Süreç Durumu Fotoğrafı

ps (Process Status), o anda sistemde çalışan süreçlerin anlık ekran görüntüsünü (snapshot) sunar.

En yaygın kullanılan parametre kombinasyonu BSD tarzı aux seçeneğidir:

ps aux

Sütunların Anlamı:

  • USER: Süreci başlatan kullanıcı.
  • PID: Süreç kimlik numarası.
  • %CPU ve %MEM: Anlık işlemci ve bellek kullanım yüzdesi.
  • VSZ / RSS: Sanal bellek boyutu ve bellekteki gerçek fiziksel yerleşimi (RAM).
  • STAT: Sürecin o anki durumu (R: Çalışıyor, S: Uyuyor, D: Kesintisiz beklemede, Z: Zombi süreç).
  • COMMAND: Süreci başlatan komut ve parametreler.

Pratik ps Kullanımları:

# 1. En çok CPU tüketen ilk 5 süreci listelemek
ps aux --sort=-%cpu | head -6

# 2. En çok RAM tüketen ilk 5 süreci listelemek
ps aux --sort=-%mem | head -6

# 3. Süreçleri ebeveyn-çocuk ilişkisiyle (ağaç yapısında) görmek
ps -ejH

2. htop: Canlı ve İnteraktif Süreç İzleme

Geleneksel top komutuna kıyasla renkli arayüzü, fare desteği, kaydırma kolaylığı ve işlemci çekirdeklerini ayrı ayrı göstermesiyle htop modern sistem yönetiminin vazgeçilmezidir.

Eğer sisteminizde kurulu değilse hızlıca kurabilirsiniz:

# Debian / Ubuntu / Mint
sudo apt install htop

# RHEL / CentOS / Fedora
sudo dnf install htop

# Arch / Manjaro
sudo pacman -S htop

Doğrudan terminale htop yazarak başlatabilirsiniz:

htop

En Yararlı htop Kısayolları:

  • F3 (Search): Süreç adı veya komut içinde hızlı arama yapar.
  • F4 (Filter): Sadece aradığınız kelimeyi içeren süreçleri ekranda bırakır.
  • F5 (Tree View): Süreçlerin hiyerarşik ağaç yapısını (hangi sürecin hangisini tetiklediğini) gösterir.
  • F6 (SortBy): Sıralama kriterini değiştirir (CPU, Bellek, PID vb.).
  • u: Yalnızca belirli bir kullanıcının süreçlerini filtreler.
  • F9 (Kill): Seçili sürece doğrudan sinyal (SIGTERM, SIGKILL vb.) gönderir.

3. lsof: Açık Dosyalar ve Port Takibi

Unix felsefesinin en temel ilkelerinden biri “Everything is a file” (Her şey bir dosyadır) anlayışıdır. Sistemdeki sıradan dosyalar, dizinler, ağ soketleri, borular (pipes) ve donanım aygıtları birer dosya tanımlayıcısı (file descriptor) ile yönetilir.

lsof (List Open Files), hangi sürecin hangi dosyaya veya ağ bağlantısına eriştiğini tespit eder.

Hayat Kurtaran lsof Senaryoları:

1. Belirli Bir Portu Hangi Sürecin Kullandığını Bulmak

Bir servisi (örn: Nginx veya Node.js) başlatırken “Address already in use” (Port zaten kullanımda) hatası aldığınızda:

sudo lsof -i :80
# veya SSL portu için:
sudo lsof -i :443

Çıktıda portu işgal eden sürecin adını ve PID numarasını doğrudan görebilirsiniz.

2. Silinmiş Fakat Diskte Yer Kaplayan Dosyaları Bulmak

Bazen bir log dosyasını silersiniz (rm) fakat diskte yer açılmaz; çünkü çalışan bir servis o dosyayı hala açık tutmaktadır:

sudo lsof | grep '(deleted)'

3. Belirli Bir Dizin veya Dosyayı Meşgul Eden Süreci Bulmak

Bir diski veya USB belleği çıkarırken (umount) “device is busy” hatası alıyorsanız:

sudo lsof /media/yedek

Süreçleri Sonlandırma ve Sinyal Yönetimi

Sorun çıkaran bir süreci sonlandırmak için kill, killall veya pkill kullanılır:

# 1. Nazikçe sonlanma isteği (SIGTERM - 15)
kill 1234

# 2. Zorla ve derhal sonlandırma (SIGKILL - 9)
kill -9 1234

# 3. Ada göre tüm eşleşen süreçleri kapatma
pkill -9 nginx

Diğer Sistem Yönetim Araçlarıyla Birlikte Kullanım

Süreçlerin arka plandaki servis ilişkilerini yönetmek için sitemizdeki Systemd Temelleri ve Systemctl Komutları rehberlerine göz atabilirsiniz. Ayrıca diskte aradığınız dosya ve logları tespit etmek için find komutu rehberi de size hız kazandıracaktır.

Süreçlerin arka planındaki /proc dosya sistemi yapısı hakkında daha fazla teknik detay için Linux man-pages proc(5) dokümantasyonunu inceleyebilirsiniz.

Tags , , , , , ,

How can we help?