süreçlerin listelenmesi ve yönetilmesi
Süreç, PID, PPID, UID
ps, kill, pkill, killall
İşletim sistemi üzerinde ön planda ya da arka planda çalışan program parçalarından her birine process yani süreç denir. Süreçlerin yönetilebilmesi için bazı kavramların bilinmesi gerekmektedir.
Her bir sürecin kendisine ait bir süreç kimliği vardır (PID)
Her sürecin bir ata süreci vardır (PPID)
USER Sürecin sahibi olan kullanıcı.
TTY Kullanıcının o an yapmış oldığı kabuğu ifade eder.
COMMAND Süreci başlatan komutu ifade eder.
TIME Sürecin CPU'da harcadığı süre.
START Sürecin başladığı saat
STAT Sürecin o anki durumunu ifade eder.
-S : Sürecin beklemede olduğunu gösterir.
-R : Sürecin o an çalıştığını,CPU'da işlem gördüğünü belirtir.
-D : Süreç kesilemez bir şekilde uykuda.
-T : Sürecin debugger'da incelendiğini ya da durdurulduğunu gösterir.
-Z : Süreç zombi durumunda.
CPU kullanımının yüzde kaçının ilgili sürece ait olduğu %CPU sütununda gösterilir.
Sürecin belleğin yüzde kaçını kullandığı bilgisi %MEM sütununda gösterilir.
İşletim sistemi üzerinde o an çalışan işlemleri izleyebileceğimiz bir komuttur.
En çok kullanılan parametreler aşağıdakilerdir:
-a: Belirli bir terminal kontrölündeki o an çalışan süreçleri listeler -u: Süreç sahiplerini de listeler -x: Bir kabul kontrolünde olmayan süreçleri listeler. (TTY sütununda ? ile ifade edilirler.)
Diğer parametreler:
-A : Sistemdeki bütün süreçleri listeler.
-r : Sadece çalışmakta olan süreçleri listeler.
-f : Süreçler arasındaki parent-child ilişkilerini gösterir.
-l : Uzun formatlı bir liste üretir.
-w : Bir sürecin komut satırı parametrelerini gösterir.
-C : Bir süreç ile birlikte o sürecin alt süreçlerini listeler.
T : Komutun girildiği terminalde başlatılan süreçleri listeler.
p : PID değeri girilen sürecin bilgilerini gösterir.
Bir önceki ps komutu yalnızca o anki süreçleri listeleyen bir komuttur. Süreçler durumlarını dinamik olarak görüntülenmek isteniyorsa top komutu kullanılır.
top aynı zamanda sistem üzerindeki süreçlerin sayısını ve bu süreçlerin kaçınının çalıştığını, uyuduğunu, durduğunu ya da zombi sürece dönüştüğünü gösterir.
ps'den farklı olarak pstree, çalışan işlemleri bir ağaç yapısında gösterir. Bu sayede görsellik artar ve bir sürecin ebeveyn süreçlerini bulmak kolaylaşır.
pstree bazı sistemlerde kurulu gelmediğinden ötürü öncelikle sistem üzerine psmisc paketini kurmak gerekmektedir.
Paket kurulduktan sonra pstree komutu ile süreç ağacı görüntülenebilir.
Tıpkı diğer işletim sistemlerinde olduğu gibi GNU/Linux sistemler üzerinde de kimi zaman bazı komut ya da programlar çalışmasını tamamlayamamaktadır. Bu da sistemin ya da ilgili komut/programın yanıt vermemesine sebep olmaktadır.
Yanıt vermeyen programlarla baş etmenin bazı zamanlarda tek çözümü programa ait süreç veya süreçlerin durdurulmasıdır.
Bu noktada durdurmak istediğimiz sürecin tekil süreç veya süreç ailesi olmasına göre iki farklı yöntem izleyebiliriz
Sistem üzerinde çalışan herhangi bir sürecin pid numarasını parametre olarak alır ve parametre olarak aldığı bu değerin ait olduğu süreci öldürür.
Eğer birden fazla process pid'si ile birlikte öldürülmek isteniyorsa -9 parametresi kullanılmalıdır.
Eğer sistem üzerinde öldürülmek istenen süreç, pid'si yerine adı ile öldürülmek isteniyorsa pkill komutu kullanılır.
Eğer öldürülmek istenen tekil bir süreç yerine süreç ailesi ise killall komutu kullanılmalıdır.