Öldür (komut) - Kill (command)

öldürmek
Orijinal yazar (lar)AT&T Bell Laboratuvarları
Geliştirici (ler)Çeşitli açık kaynak ve ticari geliştiriciler
İlk sürümŞubat 1973; 47 yıl önce (1973-02)
İşletim sistemiUnix, Unix benzeri, Plan 9, Cehennem, OS-9, pencereler, ReactOS, Tekillik, IBM i
TürKomut

İçinde bilgi işlem, öldürmek bir komut birkaç popüler işletim sistemleri göndermek sinyaller koşmak süreçler.

Uygulamalar

Unix ve Unix benzeri

İçinde Unix ve Unix benzeri işletim sistemleri, öldürmek bir komut göndermek için kullanılır sinyal bir sürece. Varsayılan olarak, gönderilen mesaj sonlandırma sinyali işlemin yapılmasını isteyen çıkış. Fakat öldürmek yanlış bir adlandırma niteliğindedir; gönderilen sinyalin süreç öldürmeyle ilgisi olmayabilir. öldürmek komut bir sarıcı etrafında öldürmek() sistem çağrısı gönderen sinyaller süreçlere veya süreç grupları sistemde, sayısal değerleri ile işlem kimlikleri (PID'ler) veya süreç grubu Kimlikler (PGID'ler). öldürmek her zaman bağımsız bir yardımcı program olarak sağlanır. POSIX standart. Ancak çoğu kabuklar Sahip olmak yerleşik öldürmek ondan biraz farklı olabilecek komutlar.[1][2]

Gönderilebilecek birçok farklı sinyal vardır (bkz. sinyal tam bir liste için), ancak kullanıcıların genellikle en çok ilgilendikleri sinyaller SİGTERM ("sonlandır") ve SIGKILL ("öldürmek"). Gönderilen varsayılan sinyal SIGTERM'dir. Bu sinyali işleyen programlar, çıkmadan önce yararlı temizleme işlemleri (yapılandırma bilgilerini bir dosyaya kaydetmek gibi) yapabilir. Ancak, birçok program bu sinyal için özel bir işleyici uygulamaz ve bu nedenle bunun yerine varsayılan bir sinyal işleyici çağrılır. Diğer zamanlarda, özel bir işleyiciye sahip bir işlem bile sinyali düzgün bir şekilde işlemesini engelleyecek şekilde ters gitti.

Hariç tüm sinyaller SIGKILL ve SIGSTOP ("durdur") işlem tarafından "durdurulabilir", yani program bu sinyalleri aldığında özel bir işlev çağrılabilir. İki istisna SIGKILL ve SIGSTOP yalnızca ana bilgisayar sisteminin çekirdek, süreçlerin yürütülmesini kontrol etmenin güvenilir yollarını sağlar. SIGKILL işlemi sonlandırır ve SIGSTOP bir SIGCONT ("devam") alındı.[3]

Unix, yetkisiz kullanıcıların diğer işlemleri sonlandırmasını önlemek için güvenlik mekanizmaları sağlar. Esasen, bir sürecin diğerine bir sinyal göndermesi için, sinyalleme işleminin sahibi, alıcı işlemin sahibi ile aynı olmalıdır veya süper kullanıcı.

Mevcut sinyallerin tümünün farklı adları vardır ve belirli sayılarla eşleştirilmiştir. Sayılar ve sinyaller arasındaki özel eşlemenin Unix uygulamaları arasında değişebileceğini unutmamak önemlidir. SIGTERM genellikle 15, SIGKILL ise genellikle 9 olarak numaralandırılır.

Örnekler

Bir işlem gönderilebilir SİGTERM dört şekilde sinyal (bu durumda işlem kimliği '1234'dür):

öldürmek 1234öldürmek -s SÜRE 1234öldürmek -TERM 1234öldürmek -15 1234

İşlem bir gönderilebilir SIGKILL üç şekilde sinyal:

öldürmek -beceri 1234öldürmek -ÖLDÜRMEK 1234öldürmek -9 1234

Diğer yararlı sinyaller arasında HUP, TRAP, INT, SEGV ve ALRM. HUP, SIGHUP sinyal. Aşağıdakiler dahil bazı arka plan yordamları Apaçi ve Posta göndermek, yeniden oku yapılandırma dosyaları SIGHUP alındığında, kill komutu bunun için de kullanılabilir. Bir SIGINT sinyal çok basit bir şekilde basılarak oluşturulabilir CTRL+C çoğunlukla Unix kabukları. Aynı zamanda yaygındır CTRL+Z eşlenecek SIGTSTP ("terminal durdurma") ve CTRL+\ (ters eğik çizgi) eşlenecek SIGQUIT, bir programı bir çekirdek dökümü.

İlgili programlar

  • hepsini öldür - Unix'in bazı varyasyonlarında, örneğin Solaris, bu yardımcı program, sistem bir programdan geçerken otomatik olarak kapat. Yukarıdaki kill komutuna çok benzer şekilde davranır, ancak tek bir sürece sinyal göndermek yerine, sinyal sistemdeki tüm süreçlere gönderilir. Ancak, diğerleri gibi IRIX, Linux, ve FreeBSD öldürmek için sürecin (veya işlemlerin) adını belirten bir bağımsız değişken sağlanır. Örneğin, bir olay gibi bir işlemi XMMS tarafından çağrılan müzik çalar xmms, kullanıcı komutu çalıştırır killall xmms. Bu, adlı tüm işlemleri öldürebilir xmmsve eşdeğerdir "pidof xmms" yi öldür Solaris gibi sistemlerde.
  • pkill - İşlemleri isme ve diğer özniteliklere göre işaret eder. Solaris 7'de tanıtıldı ve o zamandan beri Linux için yeniden uygulandı, NetBSD ve OpenBSD. pkill, adlarına göre öldürme işlemlerini çok daha kolay hale getirir: ör. adlı bir işlemi öldürmek firefox pkill olmadan (ve olmadan pgrep ), birinin yazması gerekirdi kill `ps - başlıksız -C firefox -o pid` oysa pkill ile basitçe yazılabilir pkill firefox.
  • xkill - herhangi bir parametre olmadan çağrılırsa, fare imleci bir oktan "x" simgesine dönüşür ve kullanıcı, X sunucusunu pencerenin sahibi olan istemciyle bağlantıyı kapatmaya zorlamak için bir pencereye tıklayabilir. Bu genellikle X sunucusuyla olan bağlantısının kapatıldığını algıladığında işlemin sona ermesine neden olur.

Microware OS-9

öldürmek komut olarak da mevcuttur kabuk yerleşik içinde OS-9 kabuk. İşlem kimliğine göre başka bir işlemi öldürmek için kullanılır.[4]

Misal

İşlemi "7" işlem kimliği ile durdurun:

$ kill 7

Microsoft Windows ve ReactOS

görev öldürme komut vermek Microsoft Windows

Microsoft'un komut satırı yorumlayıcısında Windows PowerShell, öldürmek önceden tanımlanmış komut takma adı için Durdurma İşlemi cmdlet.

Microsoft Windows XP, Vista ve 7 komutu dahil et görev öldürme[5] süreçleri sonlandırmak için. Bu komut için olağan sözdizimi taskkill / im "IMAGENAME". "Desteklenmeyen" bir sürümü öldürmek birkaç sürümüne dahil edildi Microsoft Windows Kaynak Kitleri Windows 98 için mevcuttur.[6]

GNU versiyonları öldürmek üzerinden taşındı Cygwin ve Unix ortam alt sisteminin içinde çalıştırın. UNIX için Microsoft Windows Hizmetleri (Microsoft, Softway Systems'i satın alarak toptan Unix için Windows Hizmetlerini satın aldı ve Interix 17 Eylül 1999 tarihli ürün).[7]

görev öldürme komut vermek ReactOS

ReactOS uygulama Windows varyantına dayanmaktadır. Andrew Riedi, Andrew Nguyen ve He Yang tarafından geliştirilmiştir. Altında lisanslıdır GPLv2.1 veya daha sonra.[8]

Örnekler

Microsoft tarafından geliştirilen "p" harfiyle başlayan ve 10 MB'den fazla bellek kullanan tüm işlemleri bulun ve öldürün:

Not C: >ps p* | nerede { $_.şirket -sevmek "Microsoft *" -ve $_.Çalışma seti -gt 10 MB } | öldürmek -onaylamakOnaylamakBu eylemi gerçekleştirmek istediğinizden emin misiniz?Hedef "powershell (6832)" üzerinde "İşlemi Durdur" işleminin gerçekleştirilmesi.[Y] Evet [A] Herkese Evet [H] Hayır [L] Tümüne Hayır [S] Askıya Al [?] Yardım (varsayılan "Y"): ANot C: >

İşte süreci soran daha basit bir örnek Explorer.exe sonlandırmak için:

Not C: >görev öldürme /ben kaşif.exe

Bu örnek süreci sonlandırmaya zorlar:

Not C: >görev öldürme /f /ben kaşif.exe

İşlemler ayrıca PID numarası:

Not C: >görev öldürme /pid 3476

Microsoft Tekilliği

Tekillik kabuğu için standart kabuk Microsoft Araştırma 's mikro çekirdek işletim sistemi Tekillik içerir öldürmek arka plan işlemlerini sonlandırma komutu.

Örnekler

İşlemi "SampleProcess" adıyla durdurun:

Tekillik> SampleProcess'i öldür

İşlemi "42" işlem tanımlayıcısı ile durdurun:

Tekillik> 42 öldür

Bell Labs'tan Plan 9

Altında Bell Labs'tan Plan 9, kill programı gerçekte bu sonlandırmayı gerçekleştirmez ve işlem kimliklerini almaz. Aksine, işlemlerin gerçek adlarını alır ve için komutları verir. rc, kabuk Süreci sonlandırmak için Plan 9 tarafından kullanılır.[9]

Sağlanan benzer bir komut denir öldürmek, aynı şeyi yapar ancak bu şekilde öldürülmeyi reddeden süreçler için.[9]

Örnekler

Örneğin, tüm örneklerini öldürmek için kupa, bir tür:

kupa öldürmek | rc

Diğerleri

öldürmek komut ayrıca IBM i işletim sistemi.[10]

Ayrıca bakınız

Referanslar

  1. ^ "Bash Referans Kılavuzu: İş Kontrolü Yerleşikleri". GNU Projesi. Alındı 2015-02-24.
  2. ^ "zsh: 17. Kabuk Yerleşik Komutları". Alındı 2015-02-24.
  3. ^ "". Açık Grup Temel Özellikleri Sayı 7. Alındı 2015-02-24.
  4. ^ Paul S. Dayan (1992). OS-9 Guru - 1: Gerçekler. Galactic Industrial Limited. ISBN  0-9519228-0-7.
  5. ^ "Görev Öldürme". Microsoft TechNet. Alındı 2015-02-24.
  6. ^ "Kaynak Seti Yardımcı Programları - Windows '98 Kaynak Seti". ActiveXperts Yazılımı. Alındı 2015-02-24.
  7. ^ "Win32 için GNU yardımcı programları". Arşivlenen orijinal 2006-02-09 tarihinde. Alındı 2015-02-24.
  8. ^ reactos / taskkill.c at master · reactos / reactos · GitHub
  9. ^ a b "Plan 9 komut çevirisine UNIX". Plan 9 wiki. Arşivlenen orijinal 2008-09-05 tarihinde. Alındı 2015-02-24.
  10. ^ IBM. "IBM System i Sürüm 7.2 Programlama Qshell" (PDF). Alındı 2020-09-05.

daha fazla okuma

Dış bağlantılar