Bazen bir süreci öldürmek, ondan kurtulmanın tek yoludur. Sert ismine rağmen, bir süreci "öldürmek" sadece "onu bırakmaya zorlamak" anlamına gelir. Linux veya macOS komut satırından bunu nasıl yapacağınız aşağıda açıklanmıştır.
Süreç nedir?
Web tarayıcınız gibi programları çalıştırmak, masaüstü ortamınızla ilişkili arka plan işlemleri ve Linux sistem hizmetleri süreçlerdir.
İşlemleri iki gruba ayırabilirsiniz:
- Ön plan süreçleri bir kullanıcı tarafından başlatılan veya başlatılanlardır. Bir terminal penceresinde olabilirler veya grafiksel bir uygulama olabilirler.
- Arka plan işlemleri otomatik olarak başlatılan ve kullanıcılarla herhangi bir etkileşimi olmayan tüm süreçlerdir. Kullanıcılardan girdi beklemezler ve onlara sonuç veya çıktı sunmazlar. Arka plan işlemleri, hizmetler ve arka plan yordamları gibi şeylerdir.
Ön plan süreçleri tiyatro ekibinin ve oyuncuların ön cephesiyse, arka plan süreçleri de “sahne arkası” ekibidir.
İşlemler hatalı davrandığında veya arızalandığında, çok fazla CPU zamanı alabilir, RAM'inizi tüketebilir veya sıkı bir hesaplama döngüsüne girip tepkisiz hale gelebilir. Grafik uygulamaları, fare tıklamalarına yanıt vermeyi reddedebilir. Terminal uygulamaları sizi hiçbir zaman komut istemine geri döndürmeyebilir.
İnsancıl Cevap
Bir süreci "öldürmek" yalnızca "süreci bırakmaya zorlamak" anlamına gelir. Süreç yanıt vermeyi reddediyorsa bu gerekli olabilir.
Linux,
öldürmek
,
pkill
, ve
hepsini öldür
tam da bunu yapmanıza izin veren komutlar. Bu komutlar herhangi bir işlem türü, grafiksel veya komut satırı, ön plan veya arka plan ile kullanılabilir.
Kill Command
Kullanmak
öldürmek
, sonlandırmak istediğiniz sürecin işlem kimliğini (PID) bilmeniz gerekir.
ps
komutu, bir işlemin PID'sini bulmak için kullanılabilir.
Sahip olmak
ps
tüm süreçlerde arama yapmak için
-dır-dir
(tüm işlemler) seçeneği. Çıkışı borulama
az
tavsiye edilir, epeyce olacak. Tür
ps
, bir boşluk,
-dır-dir
, bir boşluk,
|
(bir boru karakteri), başka bir boşluk ve ardından yazın
az
. Komutu yürütmek için Enter tuşuna basın.
ps -e | az
Bu size aşağıdaki ekran görüntüsüne benzer görünen bir işlem listesi verecektir. İleriye doğru arama yapabilirsiniz
az
kullanmak
/
tuşunu kullanarak geriye doğru arama yapabilirsiniz.
?
anahtar.
İlgilendiğiniz sürece giriş yapmak için çıktıyı
ps
vasıtasıyla
kavrama
ve işlemin adını veya adının bir kısmını belirtin.
ps -e | grep atıcı
Sonlandırmak istediğiniz sürecin PID'sini bulduğunuzda, bunu
öldürmek
parametre olarak komut. Sonlandırmak için
panjur
önceki komutla tanımlanan işlem, şu komutu kullanın:
2099'u öldür
öldürmek
komut sessiz bir suikastçidir - başarılı olursa size herhangi bir geri bildirim vermez.
Pkill Komutu
pkill
komutu bir işlemi veya işlemleri adıyla sonlandırmanıza olanak tanır. İşlemi PID ile tanımlamanıza gerek yoktur. Kullanmak
pkill
bir arama terimi sağlarsınız
pkill
çalışan işlemlerin listesini kontrol etmek için kullanılır. Eşleştirme işlemleri sonlandırılır. Bu nedenle, arama terimini doğru yazdığınızdan emin olmanız gerekir.
Bir güvenlik ağı olarak,
pgrep
komut
önce
sen kullan
pkill
komut.
pgrep
komutu ayrıca bir arama terimini de kabul eder. Arama terimiyle eşleşen her işlemin PID'sini listeleyecektir. Bu güvenli çünkü
pgrep
süreçlere herhangi bir sonlandırma sinyali vermez ve arama terimini yanlış yazarsanız, yanlışlıkla başka bir işlemi sonlandırmazsınız. Arama terimine geçmeden önce doğru şekilde düşündüğünüzden emin olabilirsiniz.
pkill
. Her ikisi de
pkill
ve
pgrep
Arama terimini aynı şekilde ele alın. Tedavileri o kadar benzer ki
aynı adam sayfasını paylaş
.
Adında "subq" geçen bir süreç olduğunu varsayalım. Kullanacağız
ps -u dave | grep
perdenin arkasına bir göz atma komutu. "Subq" nin bu süreçle ve yalnızca bu süreçle eşleşeceğini görebilirsiniz. Bu sadece sürecin tam adını görebilmeniz içindir.
ps -u dave | grep subq
Kullanıcımızı varsayalım
değil
bunu yaptım; tek bildikleri, işlem adının "subq" alt dizesini içerdiğidir. Onlar kullanırlar
pgrep
arama terimiyle yalnızca bir eşleşme olup olmadığını kontrol etmek için. Daha sonra bu arama terimini kullanarak
pkill
.
pgrep subq
pkill subq
Kullanabilirsiniz
pkill
aynı anda birkaç işlemi sonlandırmak için. Burada kullanıcı koşar
pgrep
Chrome'un kaç işlem başlattığını kontrol etmek için. Onlar kullanırlar
pkill
hepsini öldürmek için. Sonra kontrol ederler
pgrep
hepsinin kaldırıldığını.
pgrep chrome
pkill chrome
pgrep chrome
Aynı adı taşıyan birkaç işlem çalışıyorsa, ancak hepsini sonlandırmak istemiyorsanız,
pgrep
ile
-f
(komut satırı) hangi işlemin hangisi olduğunu belirleme seçeneği. Basit bir örnek iki
ping
süreçler. Birini öldürmek istiyorsun, diğerini değil. Aralarında ayrım yapmak için komut satırlarını kullanabilirsiniz. Komut satırı parametresini kaydırmak için tırnak işaretlerinin kullanıldığına dikkat edin.
pgrep -f "ping 192.168.4.22"
pkill -f "ping 192.168.4.22"
Killall Komutanlığı
Uyarı
: Solaris ve OpenIndiana işletim sistemlerinde
hepsini öldür
komut olacak
sana ait olan tüm süreçleri öldür
. Kök ise veya verdiyseniz
sudo killall
bilgisayarınızı yeniden başlatacaksınız! Bu makale için yapılan araştırma sırasında, bu davranış OpenIndiana Hipster 2018.10'un en son sürümüyle doğrulandı.
hepsini öldür
komut
benzer şekilde çalışır
için
pkill
ancak belirli bir farkla. Komuta bir arama terimi iletmek yerine, tam işlem adını sağlamalısınız.
Bir işlem adıyla kısmi eşleşme sağlayamazsınız; gösterildiği gibi tüm işlem adını sağlamalısınız:
killall shutt
Killall panjur
-Y
(daha genç) seçeneği, çalışmakta olan işlemleri sonlandırmanıza olanak tanır
az
belirli bir dönemden daha fazla. Periyot sayılarla ve ardından aşağıdaki birimlerden biri ile verilir:
- s (saniye)
- m (dakika)
- h (saat)
- d (günler)
- w (hafta)
- M (ay, not, büyük "M")
- y (yıl)
Denilen bir süreci öldürmek için
ana
yeni başlatılan ve eski örneklerini bırakan
ana
çalışırken aşağıdaki parametreleri kullanabilirsiniz
hepsini öldür
, iki dakika içinde tepki verdiyseniz:
Küçült beni veya beni
-The
(daha eski) seçeneği, belirli bir süreden daha uzun süredir çalışan işlemleri sonlandırmanıza olanak tanır. Bu komut hepsini öldürecek
ssh
bir günden uzun süredir çalışan bağlantılar:
killall -o 1d sshd
Tetikleyen Çok Mutlu Olmayın
Bu komutlar, hatalı işlemleri doğru ve güvenli bir şekilde tanımlamanıza ve sonlandırmanıza olanak sağlar.
Daima dikkatli olun. Öncelikle, öldürmek üzere olduğunuz sürecin gerçekten istediğiniz işlem olduğundan emin olun. İkinci olarak, iki kez kontrol edin - dikkatli olun ve hedeflenen sürecin bitirmek istediğiniz işlem olduğundan emin olun. Memnun kaldığınızda süreci sonlandırmaya devam edin.