İçeriğe geç
edumintsBlog
Backend3 dk okuma

Proc-CLI: Süreç ve Port Yönetimi İçin Ajan Dostu Semantik CLI Aracı

Kaynak: Hacker News

Paylaş
BackendEdumints Blog
İçindekiler 7 başlık

Semantik Süreç ve Port Yönetimi Nedir?#

Yazılım geliştirme süreçlerinde yerel sunucuları yönetirken veya açık kalan portları temizlerken lsof, ps ve kill gibi karmaşık komut kombinasyonlarını hatırlamak zaman kaybettirir. proc, macOS, Linux ve Windows üzerinde çalışan semantik bir komut satırı (CLI) aracıdır. Süreçleri doğrudan port, PID, isim veya dosya yoluna göre hedeflemenizi sağlar. Bir portta neyin çalıştığını bulmak, neden orada olduğunu anlamak ve onu durdurmak, ilk denemede tahmin edebileceğiniz tek bir komutla mümkündür. Özellikle otonom kodlama ajanları ve geliştiriciler için sezgisel bir yapı sunar.

Aracın sunduğu temel komut seti (on, why, for, by, in, list, info, ports, tree, orphans, stuck, kill, stop, free, freeze, thaw, unstick, watch, wait) süreç yaşam döngüsünün tamamını kapsar.

Hedefleme ve Komut Örnekleri#

Kaynak metindeki senaryolara sadık kalarak, proc aracının farklı komut ve hedef kombinasyonlarıyla nasıl çalıştığını aşağıda inceleyebilirsiniz:

1. Süreç Sonlandırma (proc kill)#

  • :3000: 3000 portunu dinleyen süreci anında sonlandırır (SIGKILL). İşlemden önce onay ister ve --dry-run ile önizleme sunar. Başlangıçtaki iki nokta üst üste (:) bir portu ifade eder.
  • 1234: Yalnızca 1234 numaralı PID'ye sahip süreci anında sonlandırır, başka hiçbir şeye dokunmaz. Sayısal hedefler doğrudan PID olarak algılanır.
  • node: Tüm node süreçlerini listeledikten ve onay aldıktan sonra sonlandırır. Port veya sayı dışındaki ifadeler süreç adı ve tam komut satırıyla eşleşir; böylece nodemon ve node server.js gibi süreçler de bulunur.
  • :3000,:8080,node: Virgülle ayrılmış hedefleri birleştirir ve tek bir onay sonrasında hepsini tek seferde sonlandırır. İki kez eşleşen bir sürece yalnızca bir kez işlem uygulanır.
  • node --in .: Editörünüzün veya başka bir projenin süreçlerine dokunmadan, yalnızca mevcut klasördeki (ve alt klasörlerindeki) node süreçlerini sonlandırır.

2. Port ve Süreç Sorgulama (proc on)#

  • :3000: 3000 portunu dinleyen sürecin adını, PID değerini, klasörünü, CPU/bellek kullanımını ve çalışma süresini gösterir.
  • 1234: Ters방향ta çalışarak 1234 PID numaralı süreci ve dinlediği tüm portları listeler.
  • node: Her bir node sürecini ve bu süreçlerin dinlediği portları ekrana getirir.
  • :3000,:8080,node: Üç soruyu aynı anda yanıtlar: 3000 ve 8080 portlarında ne var ve node süreçleri hangi portları tutuyor.
  • node --in .: Yalnızca bulunduğunuz dizinde başlatılmış node süreçlerini ve bunların portlarını gösterir.

3. Köken ve Ebeveyn Süreç İzleme (proc why)#

  • :3000: 3000 portundaki süreci üst (parent) süreçleri boyunca geriye doğru takip eder; böylece onu bir terminal sekmesinin mi, tmux oturumunun mu yoksa editörünüzün mü başlattığını görürsünüz.
  • 1234: 1234 numaralı sürece yol açan üst süreç zincirini ve her birinin ne kadar süredir çalıştığını gösterir.
  • node: Her node sürecini onu başlatan kaynağa kadar geriye doğru izler.
  • :3000,:8080: 3000 ve 8080 portlarını tutan süreçleri her biri için ayrı birer zincir halinde izler.

4. Dosya ve İsim Bazlı Arama (proc for / proc list)#

  • ./server.py: proc for komutuyla kullanıldığında, mevcut klasördeki server.py dosyasını çalıştıran süreçleri bulur. Hedef göreceli, mutlak veya ~ ile başlayan bir dosya yolu olabilir.
  • ./logs/app.log: Hâlâ log yazmakta olan bir sunucu gibi, app.log dosyasını açık tutan süreçleri tespit eder.
  • node: Adı veya komut satırı node ile eşleşen her süreci (nodemon, node server.js dahil) listeler.

Geliştiriciler İçin Pratik Çıkarımlar#

Modern yazılım geliştirmede ve AI ajan iş akışlarında proc --in . gibi dizin kapsamlı filtreler, mikroservis projelerinde yanlışlıkla sistemdeki diğer servisleri veya IDE uzantılarını kapatma riskini ortadan kaldırır. Ayrıca --dry-run desteği ve ebeveyn süreç takibi (why), hata ayıklama (debugging) ve sistem gözlemlenebilirliği açısından geliştiricilere büyük hız kazandırır.

Kaynak ve atıf

Bu yazı, Hacker News üzerinde yayımlanan içerikten yararlanılarak Edumints tarafından yapay zekâ desteğiyle Türkçe hazırlandı. Ayrıntılar ve yazarların kendi anlatımı için orijinaline bakabilirsin:

  • proc-cli.com