Bir işlem tek bir komutla nasıl öldürülür?


18

Kimliği tek bir adımda bulduktan sonra bir süreci öldürmek istiyorum.

Şu anda bu iki komutu kullanıyorum:

pidof <name>
kill <#number_which_is_result_of_command>

Bunu yapmak için nasıl tek bir komut yazabilirim?


Cehennem nedir? bash? tcsh? ...?
Levon

2
Komut değiştirmeyi kabuğunuzun belgelerinde arayabilirsiniz .
deviantkarot

2
Xkill kullanarak olayları görsel olarak öldürüyorum. Sadece Terminal'e

1
@arochester Çalışır, ancak GUI ortamlarıyla sınırlıdır, killçeşitli komutlar konsoldan çalışacaktır (artı komut dosyalarında otomatikleştirilebilir vb.). İnsanları seçeneklerden haberdar etmek için hala iyi xkill.
Levon

Aşağıdaki cevaplardan biri sorununuzu çözdüyse, lütfen cevabın yanındaki onay işaretini tıklayarak kabul etmeyi düşünün . Her iki tarafı da bazı rep puanlarıyla ödüllendirecek ve bu sorunu çözülmüş olarak işaretleyecektir.
Levon

Yanıtlar:


18

İşlemleri adıyla da öldürebilirsiniz:

Misal:

pkill vim  # kill all processes containing vim in the process name

@Levon Emin misin? İpucu: olarak değiştirirseniz çalışır pkillkill?
Mikel

Willţe yaramayacak, Levon. kill -9 işlemi PID ile öldürür ve pkill -9 işlemi adıyla öldürür.
fromnaboo

6
-oVeya olmadan -n, yalnızca bir değil tüm eşleşen işlemleri pkillde öldürür .
Mikel

3
Kötü proses ekolojisi olan SIGKILL (-9) 'u kullanmayı önermek için -1. SIGKILL ile işlem içindeki veriler temizlenmez ve olası veri bozulmaları oluşur.
Arcege

6
Önermek killallÇOK KÖTÜ TAVSİYE. Hangi Unix / Linux'ta olduğunuza bağlı olarak çok farklı şeyler yapar.
MikeyB

13

Belirli bir soruyu komut kümenizle cevaplamak için şunu kullanın:

kill `pidof <name>`

Yana pidof <name>size sürecin PID verir size komut satırı ile kullanabilirsiniz öldürmeye çalışıyor gibi anahtarları -9vb de.

İle test edilmiştir bashve tcsh.


9
BTW, kill $(pidof <name>)daha uyumludur (POSIX) ve başka bir komut değiştirme bloğunun içinde kullanılabilir .
Rudolf Adamkovic

@RudolfAdamkovic Kabul ediyorum, bu senaryolarda daha iyi bir seçenek. Ancak hızlı yazılan bir komut için backticks kullanarak daha kolay bulabilirsiniz .. artı hem ortak kabukları (bash ve tcsh) ile çalışır .. Ben $tcsh ile çalışmak için sürüm alamadım .
Levon

Sadece denedim tcshve haklısın. Bunu bilmiyordum. Bilgi için teşekkürler!
Rudolf Adamkovic

7

Levon hakkında bir yorum olmalı, ama burada yapmak için temsilcisi eksik:

Bu sorunun kabul edilen cevabındaki tartışmaya dayanarak: /server/397762/how-to-make-folders-00-99-with-a-single-command-in-ubuntu

Çalıştırmanın tercih edilebilir (veya en azından daha sonraki arama yapan kişiler için en azından yararlı / daha açık) olabileceğini söyleyebilirim

kill $(pidof <name>)

$ () Ve ``: http://mywiki.wooledge.org/BashFAQ/082


Özellikle alt bağlantıyı eklemek için +1. @RudolfAdamkovic'ten benzer bir yorum aldım, ona cevabımı gör. Bunun tcsh ile çalışan bir sürümünü biliyor musunuz? (Ben hala kabukları hızlı bir komut yazmak için backticks bulmak daha kolay :)
Levon

Sadece bash (Linux'ta) ve ksh (HP-UX üzerinde) ile çalıştım; henüz tcsh ile geçemedi özür dilerim.
Ghillie Dhu

1

killallBelirli bir işlemi öldürmek için de komutu kullanabilirsiniz .

killall vim
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.