Kill, Pkill ve Killall Kullanılarak Linux Süreci Nasıl Sonlandırılır


Linux'ta bir işlemin sonlandırılması, çalışan bir programın yürütülmesinin sonlandırılması veya durdurulması anlamına gelir. Çalışan her işleme, İşlem Kimliği (PID) olarak bilinen ve sistemin o anda etkin olan işlemleri takip etmesine yardımcı olan benzersiz bir tanımlayıcı numara atanır.

Bu yazıda Linux kill sürecini ve Linux'ta farklı araç ve komutlar kullanarak bir sürecin nasıl bulunup sonlandırılacağını öğreneceğiz.

Linux Süreci Nedir?

Basit bir ifadeyle bir süreç, halihazırda bir sistem üzerinde çalışan bir program gibidir ve her sürecin kendine özel bir kimlik (PID) numarası vardır. Ancak bazen çalışan bir program veya işlem hatalı davranabilir, yanıt vermeyebilir veya sistem kaynaklarının çok fazlasını tüketebilir.

Böyle bir durumda, süreci durdurmamız veya "sonlandırmamız" gerekir ve bu, kill komutunun kullanışlı olduğu yerdir.

Öldürme Komutu Nedir?

"kill" komutu, kullanıcıların o anda çalışan işlemlere sinyaller göndermesine (durdurma veya sonlandırma) olanak tanıyan, onlara zarif bir şekilde çıkma veya zorla sonlandırma talimatı veren çok önemli bir yardımcı programdır.

Kill komutu, Linux sisteminizdeki aşağıdaki gibi farklı programların etkinliklerini yönetmeniz ve kontrol etmeniz gerektiğinde kullanışlıdır:

  • Herhangi bir otomatik işlemi durdurmak için.
  • Yanlışlıkla başlatılan bir süreci durdurmak için.
  • Çok fazla bellek kullanan bir işlemi durdurmak için.
  • Linux'ta çalışan herhangi bir işlemi zorla sonlandırmak için.
  • Arka planda çalışan bir işlemi durdurmak için.

/usr/bin dosyasındaki kill komutunu kullanmak, işlemleri şu şekilde tanımlayan pkill'i kullanarak bir işlemi işlem adına göre sonlandırmak için bazı ekstra özellikler sağlar. onların isimleri.

İşlem Kimliği veya İşlem Adı Nasıl Bulunur?

Çalışan bir işlemi sonlandırmadan önce, sistemdeki tüm çalışan işlemler hakkındaki bilgileri PID (işlem kimliği) ve diğer bilgilerle birlikte görüntüleyen aşağıdaki ps komutunu kullanarak İşlem Kimliğini (PID) veya adını tanımlamak önemlidir.

ps -ef

Belirli bir PID işlem adını bulmak istiyorsanız, sistemde çalışan tüm işlemleri listeleyecek ve sonuçları yalnızca "mariadb " terimini içerenleri gösterecek şekilde filtreleyecek bir grep komutunu kullanabilirsiniz. “.

ps -ef | grep mariadb

Alternatif olarak, gösterildiği gibi pgrep komutunu kullanarak bir işlemin PID'sini doğrudan ada göre bulabilirsiniz.

pgrep mariadb

Linux'ta Bir Süreç Nasıl Öldürülür?

Bir süreci sonlandırmadan, durdurmadan veya sonlandırmadan önce izinleri düşünün. Root kullanıcısıysanız herhangi bir işlemi durdurabilirsiniz ancak normal bir kullanıcıysanız komutun önüne “sudo” eklemeniz veya “” ile root'a geçmeniz gerekir. sonlandırma komutunu kullanmak için su”.

kill komutunun ortak sözdizimi şöyledir:

kill [signal or option] PID(s)
OR
sudo kill [signal or option] PID(s)

Bir kill komutu için Sinyal Adı şu şekilde olabilir:

Açıkça yukarıdaki davranıştan:

  • SIGTERM, bir işlemi sonlandırmanın varsayılan ve en güvenli yoludur.
  • SIGHUP, bir süreci sonlandırmanın SIGTERM'e göre daha az güvenli bir yoludur.
  • SIGKILL, bir işlemi kaydetmeden sonlandıran bir işlemi sonlandırmanın yukarıdaki üç yol arasında en güvensiz yoludur.

Linux'ta işlemleri durdurmak, sonlandırmak veya duraklatmak için kullanabileceğiniz farklı sinyaller vardır. Aşağıdaki komutu kullanarak mevcut tüm öldürme sinyallerini adları ve karşılık gelen numaralarıyla birlikte listeleyebilirsiniz.

kill -l

Kullanılabilir birden fazla sinyal olmasına rağmen çoğu durumda yalnızca SIGKILL (9) ve SIGTERM (15)'i kullanırız.

Bir süreci sonlandırmak için sürecin Süreç Kimliğini bilmemiz gerekir. Süreç bir programın örneğidir. Bir program her başlatıldığında, o süreç için otomatik olarak benzersiz bir PID oluşturulur.

Linux'taki her İşlemin bir pid'i vardır. Linux Sistemi başlatıldığında başlayan ilk süreç – init süreci'dir, dolayısıyla çoğu durumda '1' değeri atanır.

Init ana süreçtir ve bu şekilde öldürülemez; bu, ana sürecin yanlışlıkla sonlandırılmamasını sağlar. Init, kendisinin öldürülmesine karar verir ve izin verir; burada kill yalnızca kapatma talebidir.

Bir adım öne çıkıp kill komutunu çalıştırmadan önce dikkat edilmesi gereken bazı önemli noktalar:

  • Bir kullanıcı tüm süreçlerini sonlandırabilir.
  • Bir kullanıcı başka bir kullanıcının sürecini sonlandıramaz.
  • Kullanıcı, Sistemin kullandığı işlemleri sonlandıramaz.
  • Kök kullanıcı, sistem düzeyindeki süreci ve herhangi bir kullanıcının sürecini sonlandırabilir.

mariadb işlemini PID sonlandırmak için gösterildiği gibi kill komutunu kullanın.

kill -9 3383

Yukarıdaki komut, pid=3383'e sahip olan süreci sonlandıracaktır; burada PID, sürecin Sayısal Değeridir.

Aynı işlevi gerçekleştirmenin başka bir yolu da şu şekilde yeniden yazılabilir:

kill -SIGTERM 3383

Benzer şekilde 'kill -9 PID', 'kill -SIGKILL PID' ile benzerdir ve bunun tersi de geçerlidir.

İşlemin sonlandırıldığını onaylamak için tekrar ps komutunu kullanabilirsiniz.

ps -ef | grep mariadb

Linux'ta Çoklu Süreçler Nasıl Öldürülür?

Linux'ta birden fazla işlemi İşlem Kimliklerini (PID'ler) kullanarak sonlandırmak için kill komutunu ilgili PID sayılarıyla birlikte kullanabilirsiniz.

Öncelikle ps veya pgrep komutunu kullanarak sonlandırmak istediğiniz işlemlerin PID'lerini tanımlayın.

ps aux | grep apache2
OR
pgrep apache2

PID'leri aldıktan sonra bunları sonlandırmak için kill komutunu kullanın.

kill -9 PID1 PID2 PID3

Linux'ta İşlem Adını Kullanarak Bir İşlemi Öldürme

İşlem adını kullanarak bir işlemi sonlandırmak için kill komutunu kullanacağız; bu, kill komutunun bir sürümü olup, işlemin adını veya modelini belirtmenize olanak tanır. bir süreç bulun.

Öldürmeden önce süreç adını bilmelisiniz, yanlış bir süreç adı girmek sizi mahvedebilir.

pkill mysqld

Bir sürecin çok fazla örneği ve birden fazla alt süreci varsa, süreç numarası yerine süreç adını argüman olarak alan bir 'killall' komutumuz vardır.

Killall Komutunu Kullanarak Linux'ta Bir İşlem Nasıl Sonlandırılır

Killall ve kill arasındaki temel fark, killall'ın bir işlemi adıyla sonlandırabilmesi, oysaki kill komutunun işlem kimliğine (pid) bağlı olmasıdır.

Tüm mysql örneklerini alt işlemlerle birlikte öldürmek için aşağıdaki komutu kullanın.

killall mysqld
OR
pkill mysqld

Aşağıdaki komutlardan herhangi birini kullanarak işlemin çalışıp çalışmadığını her zaman doğrulayabilirsiniz.

systemctl status mysql
pgrep mysql
ps -aux | grep mysql

htop veya gnome-system-monitor gibi Linux grafik sistemleri izleme araçları, süreçleri bulmak ve sonlandırmak için kullanıcı dostu bir arayüz sağlar.

Çözüm

benden şimdilik bu kadar. Yakında başka ilginç ve bilgilendirici bir konuyla döneceğim. O zamana kadar Tecmint'i takipte kalın ve sağlığınıza dikkat edin. Değerli görüşlerinizi yorum kısmında paylaşmayı unutmayın.