Karşılaştığınız bir Linux sorununa yanıt bulmaya çalışan tarayıcınızda en az beş açık sekme daha var mı?
Bu davranış size veya genel olarak insanlara özgü değildir. Makineler de çoklu görev yapar. Ve tıpkı sizin gibi, Linux da çok görevlidir ve aynı anda birçok süreç devam etmektedir. İster Linux'u profesyonel olarak kullanan bir geliştirici olun, ister günlük aktiviteleriniz için Linux ile çalışan normal bir kullanıcı olun, sisteminiz üzerinde tam kontrol sağlamak için bu paralel süreçleri anlayabilmeniz gerekir. Süreç yönetimi ve sistem kontrolü bir Linux sistemini çalıştırmanın temel unsurlarıdır.
Sistemde çalışan süreçleri verimli bir şekilde yönetmek, gerçek zamanlı olarak neler olduğunu görmek, tüm arka plan süreçleri hakkında genel bir fikre sahip olmak ve sistem kaynaklarını kontrol etmek için süreç yönetimine ilişkin teknik bilgiye ihtiyacınız vardır. ps aux komutu, süreç yönetimi ve sistem kontrolünde hayati bir rol oynayan güçlü bir komuttur. Bu yazıda ps aux komutu ve kullanım durumları hakkında daha fazla bilgi edineceğiz. Ayrıca Linux süreçlerinin nasıl çalıştığının temellerini de ele alacağız.
Linux'ta Süreç Yönetimini Anlamak
Linux ile çalışırken sistemle olan etkileşimlerimizin çoğu komutlar şeklindedir. Linux'ta süreç, bir komutun yürütülmesidir. Linux süreç yönetimi, bir komutun başlattığı süreçlerin değiştirilmesini içerir. Bir işlemi sonlandırabilir, başlatabilir veya sonlandırılan işlemleri devam ettirebilirsiniz. Ayrıca devam eden komutları da değiştirebilirsiniz.
İki tür Linux işlemi vardır:
- Ön plan süreçleri
- Arka plan işlemleri
Linux Ön Plan Süreçleri
Ön plan işlemi, aktif olarak yürütülen ve genellikle kullanıcıyla sürekli ve gerçek zamanlı etkileşim gerektiren bir işlemdir. Ön plandaki bir süreç çalışırken diğer süreçlerin yürütülmesi duraklatılır. Yani başka herhangi bir komutu çalıştıramazsınız. Bir ön plan işlemi klavyeden girişi standart giriş veya stdin olarak alır. Daha fazla karışıklığı önlemek için stdin ve stdout, stderr ile birlikte Linux veri akışlarıdır. Temel olarak kullanıcının süreçle nasıl etkileşime girdiği ve bunun için veri sağladığıdır. İşlemin işlevselliğine ve girdisine bağlı olarak süreç tarafından üretilen standart çıktı veya stdout vardır. Ön plan işlemleri Linux'ta varsayılan yürütme modudur.
Linux Arka Plan Süreçleri
Arka plan işlemleri, kullanıcı etkileşimi gerektirmedikleri ve yalnızca terminalin tüm alanını kaplamadıkları ve diğer işlemlerin yürütülmesine izin verdikleri için ön plan işlemlerinin tam tersidir. Arka plan işlemlerinin giriş ve çıkış türleri de farklıdır. Genellikle stdin almazlar. Ancak işlemin sonuçları stdout olarak görüntülenebilmektedir. Arka plan işlemlerinin çıktısının görüntülenmesi, diğer ön plan işlemlerinin çıktısıyla eşzamanlı olarak gerçekleşir. Böylece diğer önemli eylemleri kesintiye uğratmadan arka plan sürecinin ilerlemesini veya sonuçlarını görebilirsiniz.
Linux'ta çok çeşitli görevlerin yürütülmesi komut satırına bağlı olduğundan, ön plandaki işlemler zahmetli olabilir, arka planda çalışan işlemler ise terminalinizi diğer görevler üzerinde çalışmaktan kurtarır. Dolayısıyla, ön plandaki bir görevi arka plana yerleştirmek burada yapılması makul bir şeydir. İçin arka plana bir işlem gönder öncelikle ön planda yürütülmesini durdurmalısınız. Bu basitçe CTRL+Z tuşlarına basılarak yapılır. Daha sonra bg komutunu yazarak sonlandırılan işlem arka planda yeniden çalışacaktır. Fg komutu işlemi tersine çevirecek ve ön plana çıkaracaktır.
İşlem Durumu; Sözdizimi, Komutlar ve Çıktıyı Yorumlama
Linux'ta etkili süreç yönetimi, ps aux komutuyla izlenebilen süreçlerin durumunun anlaşılmasını gerektirir. Ancak ps aux komutunu daha derinlemesine incelemeden önce farklı işlem durumları hakkında bilgi edinelim. Birkaç tür süreç ve süreç durumu olmasına rağmen, en yaygın olanların bir tablosunu burada bulabilirsiniz:
| Süreç durumu | Tanım | |
| Koşu(R) | İşlem şu anda çalışıyor ve CPU kaynaklarını kullanıyor. | |
| Uyku | Kesintisiz (S) | İşlem, belirli bir girişin veya olayın yeniden çalışmaya başlamasını bekliyor. Şu anda CPU kaynaklarını kullanmıyor. Kaynaklar mevcut olduğunda veya sinyaller verildiğinde süreç yeniden başlar. |
| Kesintisiz (D) | Kesintisiz uykudaki bir süreç gibi, kesintisiz bir uyku süreci de CPU kaynaklarını kullanmaz. Tek fark, sinyallere tepki vermemesi, ancak kaynaklar mevcut olduğunda hayata geri dönmesidir. | |
| Durduruldu(T) | Bir kullanıcı girişi veya belirli bir olay süreci duraklattı. Durdurulmuş durumdaki bir işlem herhangi bir CPU kaynağı kullanmaz. | |
| Ölü(X) | Süreç sonlandırıldı ve artık mevcut değil. | |
Bu süreç durumlarının iyi anlaşılması, Linux sistemlerini etkili bir şekilde yönetmenin ve sorun gidermenin çok önemli bir yönüdür. Şimdi Linux'ta süreç durumunu elde etmek için sözdizimi ve komutların yanı sıra çıktının nasıl yorumlanacağını ele alalım.
Süreç Durumunu Edinmeye Yönelik Sözdizimi ve Komutlar
Linux'ta işlem durumunu ps komutunun temel sözdizimiyle alabilirsiniz:
ps [process name]
ps komutuyla birlikte kullanılan başka seçenekler de vardır:
yardımcı: Bu seçenek, sistemde çalışan tüm işlemlerin kapsamlı bir listesini gösterir. İşlem kimlikleri (PID'ler), ana işlem kimlikleri (PPID'ler), CPU ve bellek kullanımı ve işlem durumları gibi bilgiler sağlar. ps aux komutunun sağladığı çıktı çok daha düzenlidir, daha okunabilirdir ve temel ps komutundan çok daha fazla yararlı bilgi içerir.
ef: Bu seçenek, ağaç benzeri bir yapı olarak süreç hiyerarşisi de dahil olmak üzere, ekstra ayrıntılarla birlikte süreçlerin tam formatlı bir listesini gösterir.
l: Bu seçenek, işlemler hakkında daha ayrıntılı bilgi sunan uzun bir listeleme formatı sağlar.
Çıktıyı anlama
ps komutunu istenilen seçeneklerle çalıştırdığınızda sisteminizde o anda çalışan işlemleri temsil eden bir çıktı üretir. Çıktı, işlem kimliği (PID), ana işlem kimliği (PPID), CPU kullanımı, bellek kullanımı, işlem durumu, terminal türü ve komut adı dahil olmak üzere farklı işlem niteliklerini gösteren sütunlardan oluşur.
Aşağıda bu sütunların her birinin ne anlama geldiğine ilişkin bir açıklama yer almaktadır:
PID: Bu sütun işlemin benzersiz kimliğini gösterir.
: Bu sütun kullanıcının oturum açtığı terminalin türünü gösterir.
ZAMAN: Bu sütun, bu işlem tarafından dakika ve saniye cinsinden ne kadar CPU kullanıldığının göstergesidir.
CMD: Bu sütun, bu işlemi başlatan komutun adını temsil eder.
ps komutunun sağladığı bilgileri analiz etmek, Linux makinenizin davranışı hakkında daha derin bir fikir edinmenizi sağlar.
ps Komutu ile Süreç Yönetimi İçin İleri ps Teknikleri
Şimdi ps komutunun bazı gelişmiş özelliklerini ve bunların etkili bir şekilde nasıl kullanılabileceğini inceleyelim:
1. Süreç Sıralama
ps aux komutu, son çıktıyı farklı sütunlara göre sıralamak için kullanılabilir. Örneğin, işlemleri istediğiniz sırada görmek için işlem kimliğine veya CPU kullanımına göre sıralayabilirsiniz.
PS aux kullanarak işlem kimliğine göre işlemleri sıralamaya bir örnek:
ps aux –-sort pid
Head komutu çıktının yalnızca ilk beş satırını almak için kullanılır.

2. Süreç Ağacı Görselleştirmesi
Süreçlerin ebeveyn-çocuk ilişkisini net bir şekilde görmek istiyorsanız ps komutunu orman seçeneğiyle kullanabilirsiniz.
ps -aux --forest

İşlemler arasındaki ilişkiyi ağaç benzeri bir düzende görmek için pstree komutunu da kullanabilirsiniz. Bu komut daha anlaşılır ve süreçler arasındaki hiyerarşiyi mükemmel bir şekilde gösteren bir çıktı oluşturacaktır. Bu komutu kullanmak için aşağıdaki komutu yazın:
pstree [pid or username]
Bu komuta bir PID vererek, komuta bu işlemi ağacın kökü olarak kabul etmesini söylersiniz.
3. Filtreleme İşlemleri
Belirli bir süreç grubuyla çalışmak istediğinizi düşünün; örneğin kullanıcılardan birinin tüm işlemlerini listelemek istiyorsunuz. Karakteristik bazlı filtreleme işlemleri ps komutu kullanılarak yapılabilmektedir. Bu örnekte işlemleri kullanıcı adına göre filtreledik.
ps -u [username]

Ve ps aux grep komutu, komuta sağladığınız herhangi bir kalıp veya anahtar kelimeye göre işlemleri filtreleyebilir. Örnek olarak aşağıdaki koda bir göz atın:

Bu komut önce tüm işlemleri listeler ve çıktıyı, bu uzun listeyi işlem kimliğine göre filtrelemek için grep komutuna verir. Yukarıdaki görselde bilgilerinde 15 rakamı bulunan tüm işlemlerin listesini görebilirsiniz.
ps komutu ve yetenekleri hakkında daha detaylı bilgi için bu komutun kılavuz sayfasını okuyabilirsiniz. Aşağıdaki kod sizin için kılavuz sayfasını görüntüleyecektir:
man ps
Linux'ta Görev Önceliğini Yönetme
Linux'ta süreç yönetiminin gerçekte nasıl çalıştığını daha iyi açıklamak için süreç önceliğini ve bunun nasıl değiştirileceğini de ele almalıyız. Birkaç işlemi çalıştırdığınız ve CPU'nun görevlerle aşırı yüklendiği bir durumu hayal edin. Bu durumda kaynaklarınızı düzgün çalışacak şekilde yönetmek istiyorsanız, çalışan görevlerin önceliğini değiştirmeniz gerekir. Linux'ta her sürecin bir öncelik değeri vardır. Bu değer, çekirdeğin görevleri önceliklendirmesine yardımcı olur. Öncelik numarası -20 ila 19 arasında değişir; 19 en az önemli görev ve -20 en acil görevdir. En yüksek önceliğe sahip işlem, diğer işlemlere kıyasla daha fazla CPU zamanı alır. Öncelik değerlerine genellikle "iyi" değerler denir; daha düşük güzel değerler daha yüksek önceliği gösterir.
Sistem kaynaklarını verimli bir şekilde tahsis etmek için nice ve renice komutlarını kullanabilirsiniz.
Ancak süreçlerin önceliğini değiştirmeden önce ps komutunun ilk kullanım durumunu inceleyelim.
- ps komutunu kullanarak tüm işlemlerin mevcut önceliğini görüntüleme:
Bu komut, tüm işlemleri, işlem kimlikleri (PID), komut adları ve geçerli öncelik (iyi değer) ile birlikte listeler:
ps -eo pid,cmd,nice

- Nice komutunu kullanarak varsayılan yüksek önceliğe sahip bir işlemi başlatmak:
Bu komutu kullanarak tercih ettiğiniz önceliğe sahip bir işlemi başlatabilirsiniz:
nice -n [priority] [command]
[Öncelik]'i öncelik düzeyini temsil eden istenen negatif değerle ve [komut]'u yürütmek istediğiniz komutla değiştirin.
İşte bir örnek:

- Zaten çalışmakta olan bir komutun önceliğini değiştirmek:
renice -n [priority] -p [PID]
Değiştirmek istediğiniz işlemin işlem kimliğini [PID] ile değiştirin.
Her türlü görevi gerçekleştirebilecek güçlü bir Linux makinesine sahip olmak istiyorsanız, Linux VPS'si sizin için en iyi çözümdür. Cloudzy tercih ettiğiniz dağıtımın önceden yüklenmiş olduğu çeşitli Linux VPS planları sunar. 7/24 destek, 30 günlük para iade politikası ve %99,95 kesintisiz çalışma garantisi gibi birçok avantajlı özelliğiyle Cloudzy, fiyatları düşük tutmayı başardı. Linux VPS fiyatlarımız ayda yalnızca 4,95dan başlıyor.
Web sitenizi veya uzak masaüstünüzü barındırmak için kendinize en ucuz fiyata ekonomik veya premium Linux VPS edinin. VPS, daha fazla verimlilik için Linux KVM üzerinde çalışır ve daha yüksek hız için NVMe SSD depolama ile güçlü donanım üzerinde çalışır.
Devamını okuÇözüm
Sonuç olarak, süreç yönetimi ve sistem kontrolünde uzmanlaşmak sistem yöneticileri, daha fazlasını öğrenmek isteyen Linux meraklıları ve düzenli Linux kullanıcıları için bir zorunluluktur. ps komutunun yetenekleri ve işlevleri hakkında bilgi edinmek, süreç yönetimini öğrenmede yolunuzu kolaylaştırabilir. Bu nedenle bu makale ps komutunun önemli kullanım örneklerini ele almanın yanı sıra okuyuculara Linux süreçlerine bir giriş sağladı.
SSS
Linux'ta ps aux komutu nedir?
ps aux Linux komutu, çalışan işlemler hakkında bilgi edinmek için Linux'ta yaygın olarak kullanılan bir komuttur. Süreç kimlikleri (PID'ler), CPU ve bellek kullanımı, yürütme durumları ve diğer hayati ayrıntılar dahil olmak üzere, kullanıcı dostu bir formatta kapsamlı bir süreç listesi sağlayabilir.
Linux'ta iki tür süreç nedir?
Ön plan süreçleri ve arka plan süreçleri. Ön plan işlemleri çalışırken terminali işgal eder ve diğer işlemlere izin vermez. Arka plan işlemleri arka planda çalışır ve terminalin tamamını kaplamaz.
Linux sistemimde çalışan işlemlerin listesini nasıl görüntüleyebilirim?
Linux sisteminizde çalışan işlemlerin listesi ps, top veya htop gibi komutlar kullanılarak görüntülenebilir. Örneğin Linux ps aux komutu, çalışan tüm işlemler hakkında ayrıntılı bilgi sağlar.