GNU-Linux'da Kill Komtunun Kullanım Şekilleri

Linux ve Unix tabanli isletim sistemlerini hep beraber tanıyıp öğreneceğiz.
Cevapla
Kullanıcı avatarı
TRWE_2012
Exabyte1
Exabyte1
Mesajlar: 10961
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Teşekkür etti: 889 kez
Teşekkür edildi: 1919 kez

GNU-Linux'da Kill Komtunun Kullanım Şekilleri

Mesaj gönderen TRWE_2012 »

Önsöz.......

Linux İşletim Sistemi bir işlemi sonlandırmak için kill komutuyla birlikte gelir. Komut, büyük bir değişiklik / güncelleme işleminden sonra yeniden başlatmaya gerek kalmadan sunucuyu/lokal pc'yi yada arkaplan işlemini/programını çalıştırmaya devam etmeyi mümkün kılar. İşte Linux’un büyük gücü buradan gelmektedir ve bu nedenle Linux sunucuların % 90’ında kullanılmaktadır.

Kill komutu, bir işlem için özel olarak belirtilen bir sinyal gönderir. Kill komutu, doğrudan veya bir kabuk komut dosyasından birkaç farklı şekilde çalıştırılabilir.

Kill komutunun ortak sözdizimi:

Kod: Tümünü seç

# kill [sinyal veya seçenek] PID (ler)
Bir kill komutu için bir Sinyal Adı şöyle olabilir:

Kod: Tümünü seç

**********************************************
|---------------------------------------------|
|[SİNYAL_ADI]        [DEĞERİ]      [NE İFADE ETTİĞİ]    |
|--------------------------------------------  |
 |SIGHUP                          1                        Hangup                 |
 |SIGKILL                         9                        Sinyali Öldür      |
|SIGTERM                      15                      Sonlandır             |
*********************************************
Açıkça SIGTERM yukarıdaki davranıştan bir süreci öldürmenin varsayılan ve en güvenli yoludur. SIGHUP , SIGTERM olarak bir süreci öldürmenin daha az güvenli bir yoludur. SIGKILL , yukarıdakiler arasında en güvenli olmayan yöntemdir, çıktıların kayıt edilmesini beklemeden işlemi sonlandırır.

Bir süreci öldürmek için, işlem kimliğini(PID) bilmemiz gerekir. Bir program başlatıldığında, otomatik olarak bu süreç için benzersiz bir işlem kimliği (PID) oluşturulur.

Linux’taki her sürecin bir işlem kimliği(PID) bulunur . Linux Sistemi önyüklendiğinde başlayan ilk süreç – init sürecidir , bu nedenle çoğu durumda ‘ 1 ‘ değerine atanır.

Init , ana süreci oluşturduğu için bu komutla sonlandırılamaz, dolayısı ile ana sürecin yanlışıkla sonlandırılması önlenmiş olmaktadır. Init kendisini ancak bilgisayarın kapatılması durumunda sonlandırmaya izin verecek şekilde tasarlanmıştır.

Bilgisayarınızdaki tüm süreçleri ve onlara bağlı işlem kimliklerini öğrenmek için PS komutunu kullanabilirsiniz.

Kod: Tümünü seç

# ps -A

Kod: Tümünü seç

Örnek çıktı:

Kod: Tümünü seç

PID TTY          TIME CMD
    1 ?        00:00:01 init
    2 ?        00:00:00 kthreadd
    3 ?        00:00:00 migration/0
    4 ?        00:00:00 ksoftirqd/0
    5 ?        00:00:00 migration/0
    6 ?        00:00:00 watchdog/0
    7 ?        00:00:01 events/0
    8 ?        00:00:00 cgroup
    9 ?        00:00:00 khelper
   10 ?        00:00:00 netns
   11 ?        00:00:00 async/mgr
   12 ?        00:00:00 pm
   13 ?        00:00:00 sync_supers
   14 ?        00:00:00 bdi-default
   15 ?        00:00:00 kintegrityd/0
   16 ?        00:00:00 kblockd/0
   17 ?        00:00:00 kacpid
   18 ?        00:00:00 kacpi_notify
   19 ?        00:00:00 kacpi_hotplug
   20 ?        00:00:00 ata/0
   21 ?        00:00:00 ata_aux
   22 ?        00:00:00 ksuspend_usbd
Pidof süreç_adı ‘ şeklinde verilen bir komut ile çıktıyı özelleştirmenizde mümkündür.

Kod: Tümünü seç

 # pidof  komut_adı
Örnek çıktı:

Kod: Tümünü seç

# ps aux |grep komut_adı

Kod: Tümünü seç

# ps aux |grep komutun_PID_No'su
Ama önce kill komutunu kullanmadan dikkat edilmesi gereken bazı önemli noktalara göz atalım:

1.Bir kullanıcı tüm süreçlerini öldürebilir.
2.Bir kullanıcı başka bir kullanıcının sürecini öldüremez.
3.Kullanıcı sisteme ait bir süreci sonlandıramaz.
4.Kök kullanıcı(root) Sistem düzeyinde işlemi ve herhangi bir kullanıcının işlemini öldürebilir.

Aynı işlevi gerçekleştirmenin başka bir yolu ‘ pgrep ‘ komutunu çalıştırmaktır.

Örnek çıktı:

Kod: Tümünü seç

# pgrep komut_adı
PID Numarası  [bulundu]

Kod: Tümünü seç

#-9 PID Numarası
Yukarıdaki komut, işlem kimliği (PID) = PID Numaras olan süreci öldürür; buradaki PID , işlemin Sayısal Değeridir .Aynı işlevi yerine getirmenin başka bir yolu olarak yeniden yazılabilir.

kill - SIGTERM PID Numarası

Peki sürecin adını kullanarak, süreci sonlandırmaya ne dersiniz?Burada dikkat edilmesi gereken nokta doğru işlem adını yazmanız gerektiğidir, aksi takdirde yanlış bir süreci sonlandırıp işleri karmaşık bir hale getirebilirsiniz.

Kod: Tümünü seç

pkill komutun adı
Bir seferde birden fazla sürecei sonlandırmak için aşağıdaki komut yardımınıza koşacaktır

Kod: Tümünü seç

 # kill PID1 PID2 PID3 
veya

Kod: Tümünü seç

# kill -9 PID1 PID2 PID3
veya

Kod: Tümünü seç

# kill-SIGKILL PID1 PID2 PID3
Bir sürecin çok fazla örneği ve çok sayıda alt süreci varsa, ‘ killall ‘isimli bir komutumuz var. Bu, tüm süreçleri bir defada sonlandırmayı sağlar.

Kullanım Şekli:

Kod: Tümünü seç

# killall [sinyal veya seçenek] Süreç Adı
Tüm komut_adı örneklerini alt süreçlerle birlikte sonlandırmak için aşağıdaki komutu kullanın.

Kod: Tümünü seç

# killall komut_adı
Aşağıdaki komutlardan herhangi birini kullanarak işlemin çalışıp çalışmadığını her zaman kontrol edebilirsiniz.

Kod: Tümünü seç

# service komut_adı status

Kod: Tümünü seç

 # pgrep komut_adı

Kod: Tümünü seç

# ps -aux | grep komut_adı
Çeviri Sitesi: https://www.tecmint.com/how-to-kill-a-process-in-linux/
Çeviren/Tercüme Eden/Sadeleştiren : TRWE_2012 (https://forum.sordum.net)
Kullanıcı avatarı
velociraptor
Yottabyte4
Yottabyte4
Mesajlar: 46474
Kayıt: 14 Mar 2006, 02:33
cinsiyet: Erkek
Teşekkür etti: 4602 kez
Teşekkür edildi: 3916 kez

Re: GNU-Linux'da Kill Komtunun Kullanım Şekilleri

Mesaj gönderen velociraptor »

Tercüme için teşekkürler
Cevapla