Terminalde kaçamayacağım bir program çalıştırıyorum. Ctrl-C ve öldürmek istediğimi. Pıd'sini nasıl bulabilirim?
Başka bir terminal açın ve çalıştırın ps ax | grep foo
burada foo yanıt vermeyen programın adıdır. Bu, böyle bir şeye benzeyen bir çıktı satırı döndürmelidir:
$ ps ax | grep firefox2222 ? S 0:00 /bin/sh /usr/lib/firefox-3.6.9/firefox2231 ? Sl 514:36 /usr/lib/firefox-3.6.9/firefox-bin30290 pts/2 S+ 0:00 grep --color=auto firefox
Her çıktı satırının ilk alanı, eşleşen programın İşlem kimliğini temsil eden bir sayıdır. grep
(temsil eden sonuncuyu güvenle yok sayabilirsiniz grep
kendisi.
Rahatsız edici süreci durdurmak için şunları yapın:kill pid
burada pıd, programın İşlem kimliğidir. Eşleşmelerden hangisinin olması gerektiği konusunda kararınızı kullanmanız gerekebilir kill
ed, ya da kullanabilirsin. top
yerine. Kullanım kill
kendi başına, programın kendisinden sonra düzgün bir şekilde temizlenmesine izin verdiği için önce denemeniz gereken SIGTERM'İ gönderir. SİGTERM başarısız olursa, daha güçlü bir ilaç olan sighup'ı deneyin: kill -HUP pid
. Her şey başarısız olursa, SİGKİLL'İ gönderin. Ancak, bunu yalnızca son çare olarak yapmalısınız, çünkü SIGKILL çekirdeğin temizleme olanağı olmadan işlemi hemen sonlandırmasına neden olur. Bu, zaman zaman veri bozulmasına veya başka sorunlara neden olabilir. Yani yine, Sigkill'i sadece son çare olarak gönder. Bunu yapmak için şunları yapın kill -KILL pid
veya kill -9 pid
.
Bir grafik arayüzü çalıştırıyorsanız, elbette, işi yapmak için bu çılgın komut satırı şeyleriyle kandırmak zorunda değilsiniz. Sadece "Sistem Monitörü" nü açın, İşlemler sekmesine gidin, durdurmak istediğiniz işlemi seçin (Hm,% 90 CPU kullanan olabilir mi?) ve sağ tıklatın. Süreç zaten durdurulduğundan, (sorun bu, değil mi?) Sonuç menüsünden İşlemi Sonlandır veya İşlemi Öldür'ü seçin.
Kredi için koanhead
Aynı komutları pgrep, pkill, pidof vb. İle gerçekleştirebildiğiniz zaman bu kadar uzun komutlara gerek olmadığını düşünüyorum...
- Çalışan bir Programın pıd'sini almak için
pgrepname:
pgrep [options] pattern
tanım : pgrep, çalışmakta olan işlemlere bakar ve seçim ölçütleriyle eşleşen işlem kimliklerini stdout olarak listeler. Tüm kriterler eşleşmeli. Örneğin,
-
Root'a ait sshd adlı işlemi bulmak için.
$ pgrep -u root sshd
-
Root VEYA daemon'a ait işlemleri listeleyin.
$ pgrep -u root,daemon
pidofname of translators:
tanım:
Pıdof, adlandırılmış programların işlem kimliklerini (pıd'leri) bulur. Bu kimlikleri standart çıktıya yazdırıyor.
sözdizimi: pıdof program_adı
-
Bir programı pıd ile öldürmek için pkillexample kullanın:
pkill pid pkill -f process_name pkill -o process_name pkill -n process_name pkill -l process_name
-f
bayrak: işlem_adı arar (bkz.-o
bayrak: Eşleşen işlemlerin yalnızca en eskisini seçin.-n
bayrak: Eşleşen işlemlerin yalnızca en yenisini seçin.-l
bayrak: İşlem adının yanı sıra işlem kimliğini de listeleyin.
Çalışan bir programın pıd'sini bilmenin en kolay yolu:
pidof <application name>
Örneğin, vım'i başlattıysanız ve pıd'yi bilmek istiyorsanız:
pidof vim
Başlatılan programın tam adını sağlamanız gerektiğini unutmayın.
Örneğin, vı çalıştırıyorsanız ve çalıştırırsanız pidof vim
doğru sonuçlar alamayacaksın.
Başvurmak pidof
daha fazla bilgi için kılavuz sayfası.
Daha açıklayıcı bir çıktı elde etmek için "-i" ekleyerek ve "ax" yerine "aux" kullanarak büyük / küçük harf duyarlı bir arama kullanmanın güzel olduğunu buldum:
ps aux | grep -i firefox
Kullanabileceğiniz tüm işlemleri öldürmek isterseniz:
ps aux | grep -i firefox | awk {'print $2'} | xargs kill -9
Bu güçlü bir cinayet. Yumuşak bir öldürme istiyorsan "-9" u at.
Yalnızca pıd'yi istiyorsanız (otomatik doldurma komut dosyaları vb. İçin kullanışlıdır...)
pgrep -f desired_program_name
Ubuntu 16.04 LTS çalıştıranlar için, sen zorunlu kullanmak ps ax
ve sadece değil ps
komut satırında, aksi takdirde, içinde bulunduğunuz belirli terminal örneğinden gelen işlemleri alırsınız. (genellikle sadece 'bash' [içinde bulunduğunuz kabuk] ve 'ps' [az önce koştuğunuz şey])
Ayrıca başka bir terminal açabilir (veya başka bir tty'ye geçebilir) ve çalıştırabilirsiniz top
temel olarak Sistem Monitörünün bir metin sürümüdür. İlk sütun, çalışan her işlemin PID'SİNİ listeler; bu, tuşuna basarak öldürebilirsiniz K, pıd'yi girin ve göndermek için sayısal bir sinyal girin.
Yapabilirsin:
ps ax | grep firefox | cut -f2 -d" " - | xargs kill -9
ilk iki boru işlem bilgisi alır, sonra eski okul kesimini kullanarak PID sütununu almaya çalışırız ve sonra ortaya çıkan pıd'yi öldürürüz.
top
veya
screen -list|ls
tüm pıd'leri ilgili işlemle listele
kill -[pid]
Bu bir daldır [Ubuntu donduğunda ne yapmam gerekir?] (performance - What should I do when Ubuntu freezes? - Ask Ubuntu ) bu sorudaki ayrıntıların çok teknik hale gelmesini önlemek için bir referans olarak.
Bir *pidof * komutu var.