Android

Linux'ta bir süreç nasıl öldürülür

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

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

İçindekiler:

Anonim

Hiç bir uygulamayı başlattığınız durumla karşılaştınız mı ve uygulamayı kullanırken aniden yanıt vermiyor ve beklenmedik bir şekilde çöküyor? Uygulamayı yeniden başlatmaya çalışıyorsunuz, ancak hiçbir şey olmuyor çünkü orijinal başvuru süreci hiçbir zaman tam olarak kapanmıyor.

Bir noktada hepimize oldu, değil mi? Çözüm, başvuru sürecini sonlandırmak veya öldürmektir. Ama nasıl?

Neyse ki, Linux'ta hatalı işlemleri öldürmenize izin veren birkaç yardımcı program var., Linux'ta bir işlemi sonlandırmak için kill , killall ve pkill komutlarını nasıl kullanacağınızı göstereceğiz.

Bu araçlar arasındaki temel fark, kill işlemlerini İşlem Kimliği numarasına (PID) dayalı olarak sonlandırırken, killall ve pkill komutları çalışan işlemleri adlarına ve diğer özelliklerine göre sonlandırır.

Normal kullanıcılar kendi işlemlerini öldürebilir, ancak diğer kullanıcılara ait olanları değil, kök kullanıcı tüm işlemleri öldürebilir.

Sistem Öldürme Sinyalleri

kill , killall ve pkill , belirtilen işlemlere veya işlem gruplarına belirli bir sinyal gönderir. Herhangi bir sinyal belirtilmediğinde, her araç 15 ( TERM ) gönderir.

En yaygın kullanılan sinyaller:

  • 1 (-HUP): bir işlemi yeniden yüklemek için. 9 (-KILL): bir süreci öldürmek için. 15 (-TERM): bir işlemi zarif bir şekilde durdurma.

Sinyaller üç farklı şekilde belirtilebilir:

  • “SIG” öneki (örneğin, -HUP) olmadan “SIG” öneki (örn., -SIGHUP) ile sayı (ör. -1) kullanma.

Kullanılabilir tüm sinyalleri listelemek için -l seçeneğini kullanın:

kill -l # or killall -l

Aşağıda özetlenen adımlar tüm Linux dağıtımlarında çalışacaktır.

kill Komutunu Kullanarak İşlemleri Sonlandırma

kill komutuyla bir işlemi sonlandırmak için önce işlem PID'sini 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. İşlem kimliğini bulmak için pidof komutunu kullanın:

pidof firefox

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

2551 2514 1963 1856 1771

Firefox, hepsini sonlandırmak için PID'leri TERM sinyali gönderdikten sonra:

kill -9 2551 2514 1963 1856 1771

killall Komutunu Kullanarak İşlemleri Sonlandırma

killall komutu, belirtilen adla eşleşen tüm programları sonlandırır.

Önceki senaryoyu kullanarak aynı senaryoyu kullanarak Firefox işlemini yazabilirsiniz:

killall -9 firefox

killall , belirli bir kullanıcının sahip olduğu işlemlere sinyal gönderme, işlem adlarını normal ifadelerle eşleştirme ve oluşturma süresi gibi çeşitli seçenekleri kabul eder. Terminalinize killall (argüman olmadan) yazarak tüm seçeneklerin bir listesini alabilirsiniz.

Örneğin, "sara" kullanıcısı olarak çalışan tüm işlemleri sonlandırmak için aşağıdaki komutu çalıştırırsınız:

sudo killall -u sara

pkill Komutunu Kullanarak İşlemleri Sonlandırma

pkill , komut satırında verilen kalıpla eşleşen işlemleri sonlandırır:

pkill -9 firefox

İşlemin adının tam bir eşleşme olması gerekmez.

pkill ile belirli bir kullanıcının sahip olduğu işlemlere de bir sinyal gönderebilirsiniz. Yalnızca “sara” kullanıcısının sahip olduğu firefox süreçlerini öldürmek için şunu yazarsınız:

pkill -9 -u sara firefox

Sonuç

kill , killall ve pkill komutlarını kullanarak yanıt vermeyen programları sonlandırmak kolay bir iştir. Yalnızca işlem adını veya PID'yi bilmeniz gerekir.

ölüm terminali