• Web sitemizin içeriğine ve tüm hizmetlerimize erişim sağlamak için Web sitemize kayıt olmalı ya da giriş yapmalısınız. Web sitemize üye olmak tamamen ücretsizdir.

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

TRWE_2012

لِيَغْفِرَ لَكَ اللّٰهُ مَا تَقَدَّمَ مِنْ ذَنْبِك
Moderatör
Konum
BERTUNA
Forum Yaşı
6 Yıl
Mesajlar
5,458
Tepkime puanı
17,050
Ö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:
# kill [sinyal veya seçenek] PID (ler)

Bir kill komutu için bir Sinyal Adı şöyle olabilir:


Kod:
**********************************************
|---------------------------------------------|
|[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:
# ps -A

ÖRNEK ÇIKTI :

Kod:
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:
 # pidof  komut_adı

ÖRNEK ÇIKTI :

Kod:
# ps aux |grep komut_adı

Kod:
# 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 ÇIKTI :

Kod:
# pgrep komut_adı
PID Numarası  [bulundu]

Kod:
#-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:
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:
 # kill PID1 PID2 PID3
veya
Kod:
# kill -9 PID1 PID2 PID3
veya
Kod:
# 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:
# 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:
# killall komut_adı

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

Kod:
# service komut_adı status
Kod:
 # pgrep komut_adı
Kod:
# ps -aux | grep komut_adı

Çeviri Sitesi:
Kod:
https://www.tecmint.com/how-to-kill-a-process-in-linux/
Çeviren/Tercüme Eden/Sadeleştiren : TRWE_2012
 
Geri
Üst