Android

Linux'ta öldürme komutu

Linux vs Windows vs MacOS для работы. Какой ЛИНУКС выбрать в 2020 для рабочего компьютера?

Linux vs Windows vs MacOS для работы. Какой ЛИНУКС выбрать в 2020 для рабочего компьютера?

İçindekiler:

Anonim

Linux harika ve gelişmiş bir işletim sistemidir, ancak mükemmel değildir. Arada bir, bazı uygulamalar düzensiz davranmaya ve yanıt vermemeye başlayabilir veya çok sayıda sistem kaynağı tüketmeye başlayabilir. Yanıt vermeyen uygulamalar yeniden başlatılamaz çünkü orijinal uygulama işlemi hiçbir zaman tamamen kapanmaz. Tek çözüm, sistemi yeniden başlatmak veya uygulama işlemini öldürmektir.

En yaygın kullanılan varlık kill ile hatalı süreçleri sonlandırmak için izin çeşitli araçlar vardır.

kill Command

kill , Bash ve Zsh gibi Bourne'den türetilmiş mermilerin çoğunda bulunan bir mermidir. Komut davranışı, kabuklar ile bağımsız /bin/kill yürütülebilir dosyası arasında biraz farklıdır.

Sisteminizde kill içeren tüm konumları görüntülemek için type komutunu kullanın:

type -a kill

kill is a shell builtin kill is /bin/kill

Yukarıdaki çıktı, kabuk yerleşiminin bağımsız yürütülebilir dosyaya göre önceliğe sahip olduğunu ve kill yazdığınızda kullanıldığını gösterir. İkili dosyayı kullanmak istiyorsanız, /bin/kill dosyasının tam yolunu yazın., Bash yerleşkesini kullanacağız.

kill komutunun sözdizimi aşağıdaki formu alır:

kill…

kill komutu belirtilen işlemlere veya işlem gruplarına bir sinyal göndererek sinyale göre hareket etmelerine neden olur. Sinyal belirtilmediğinde, varsayılan olarak -15 (-TERM) olarak ayarlanır.

En yaygın kullanılan sinyaller:

  • 1 ( HUP ) - Bir işlemi yeniden yükle. 9 ( KILL ) - Bir işlemi öldür. 15 ( TERM ) - Bir işlemi nazikçe durdurun.

Kullanılabilir tüm sinyallerin bir listesini almak için, komutu -l seçeneğiyle çağırın:

kill -l

Sinyaller üç farklı şekilde belirtilebilir:

  1. Sayı kullanma (örneğin, -1 veya -s 1 ). “SIG” önekini kullanma (örn., -SIGHUP veya -s SIGHUP ). “SIG” öneki -HUP (örn., -HUP veya -s HUP ).

Aşağıdaki komutlar birbirine eşdeğerdir:

kill -1 PID_NUMBER kill -SIGHUP PID_NUMBER kill -HUP PID_NUMBER

kill komutuna sağlanan PID'ler aşağıdakilerden biri olabilir:

  • PID sıfırdan büyükse, sinyal PID'ye eşit ID ile işleme gönderilir. PID sıfıra eşitse, sinyal geçerli işlem grubundaki tüm işlemlere gönderilir. Başka bir deyişle, sinyal kill komutunu çağıran kabuğun GID'sine ait tüm işlemlere gönderilir. İşlem grubu kimliklerini (GID'ler) görüntülemek için ps -efj komutunu kullanın. PID -1 eşitse, sinyal komutu kullanan kullanıcıyla aynı UID'ye sahip tüm işlemlere gönderilir. Çağıran kullanıcı kök ise, init ve kill işleminin kendisi dışındaki tüm süreçlere sinyal gönderilir. PID .

Normal kullanıcılar kendi işlemlerine sinyal gönderebilir, ancak diğer kullanıcılara ait olanlara sinyal gönderemezken, kök kullanıcı diğer kullanıcıların işlemlerine sinyal gönderebilir.

kill Komutunu Kullanarak İşlemleri Sonlandırma

kill komutuyla bir işlemi sonlandırmak veya öldürmek için, önce işlem kimlik numarasını (PID) bulmanız gerekir. Bunu top , ps , pidof ve pgrep gibi farklı komutları kullanarak yapabilirsiniz.

Diyelim ki Firefox tarayıcısı yanıt vermiyor ve Firefox işlemini öldürmeniz gerekiyor. Tarayıcı PID'lerini bulmak için pidof komutunu kullanın:

pidof firefox

Komut, tüm Firefox işlemlerinin kimliklerini yazdırır:

6263 6199 6142 6076

İşlem numaralarını öğrendikten sonra, TERM sinyalini göndererek hepsini sonlandırabilirsiniz:

kill -9 2551 2514 1963 1856 1771

PID'leri aramak ve ardından işlemleri sonlandırmak yerine, yukarıdaki komutları tek bir komutta birleştirebilirsiniz:

kill -9 $(pidof firefox)

kill Komutunu Kullanarak Yeniden Yükleme İşlemleri

Öldürmenin bir başka yaygın kullanım durumu, süreçlere ayarlarını yeniden yüklemelerini söyleyen HUP sinyalinin gönderilmesidir.

Örneğin, Nginx'i yeniden yüklemek için ana işleme bir sinyal göndermeniz gerekir. Nginx ana işleminin işlem kimliği, genellikle /var/run dizininde bulunan nginx.pid dosyasında bulunabilir.

Ana PID'yi bulmak için cat komutunu kullanın:

cat /var/run/nginx.pid

30251

Ana PID'yi bulduktan sonra, aşağıdakileri yazarak Nginx ayarlarını yeniden yükleyin:

sudo kill -1 30251

Yukarıdaki komut sudo ayrıcalıklarına sahip root veya kullanıcı olarak çalıştırılmalıdır.

Sonuç

kill komutu işlemlere bir sinyal göndermek için kullanılır. En sık kullanılan sinyal, verilen işlemleri sonlandıran SIGKILL veya SIGKILL .

ölüm terminali