Linux'ta İsme Göre İşlem Nasıl Öldürülür

Bu Linux komutlarını kullanarak hatalı işlem yapan işlemlerden çıkmaya zorlayın

Bir 'İşlem'in anlamını en basit kelimelerle açıklamak, sisteminizde herhangi bir uygulama veya programın çalışan bir örneği olmasıdır. Tarama, terminalinizde çalışan müzik dinleme vb. gibi birden fazla uygulamayı aynı anda çalıştırıyor olabilirsiniz. Kullanıcı tarafından çalıştırılan bu uygulamalarla ilişkili birçok arka plan işlemi vardır.

Sisteminizde çalışan her uygulama veya program, tek uygulamanızla ilişkili birden çok işlem oluşturur. Bazen bu bir sorun olabilir ve bu süreçlerden kurtulmak tek seçeneğinizdir.

Bir süreci 'öldürmek', Linux'un, ister ön plan süreci ister arka plan süreci olsun, devam eden süreçleri durdurmanızı sağladığı yararlı bir seçenektir. Bu yazımızda aşağıdaki gibi komutları inceleyeceğiz. öldürmek, pkill ve hepsini öldür bir sistemdeki herhangi bir işlemden çıkmaya zorlamak için.

Neden bir Süreci öldürmek?

Bu öğreticide ilerlemeden önce bir süreci öldürme kavramını anlamak önemlidir. Öldürmek, kavramı ifade etmenin çok acımasız bir yolu gibi görünebilir, ancak mecazi olarak anlamı, bir süreci zorla iptal etmektir.

Şimdi, neden devam eden bir süreci iptal ediyor veya bırakıyorsunuz? Arka planda birden fazla işlem çalışırken, tümü veya birkaçı arızalanabilir ve sisteminizin hatalı çalışmasına neden olabilir. Arızalı süreç sisteminizi bir süre dondurabileceğinden, bu devam eden görevlerinizi geciktirir.

Bazen, tüm hatalı işlem süreçlerinden çıkmak, sisteminizde normalliği geri yüklemek için tek seçenek gibi görünüyor. Linux, kullanarak bir işlemi öldürmenize izin verir. pid veya işlem adı.

Kullanmak pgrep emretmek

Linux kullanıcılarının çoğu aşinadır. grep emretmek. bu pgrep komutu benzer satırlarda kullanılabilir. grep.

pgrep komutu kullanıldığında, pid komutta belirtildiği gibi çalışan işlemin. Bu komut, aracı kullanırken çok yardımcı olacaktır. pkill emretmek.

Genel Sözdizimi:

pgrep [seçenekler] [desen]

ile kullanılabilen önemli seçenekler pgrep emretmek

SeçenekAçıklama
-ubelirli bir kullanıcının sahip olduğu işlem kimliğini listele
-Ceşleşen işlemlerin sayısını saymak
-BENCEyalnızca işlem adlarını listele
-aişlem adının tam yolunu listeleyin

kullanımını gösterelim pgrep bir örnek kullanarak komut.

pgrep -u gaurav cücesi

Burada görmek istediğimiz pidler 'gaurav' kullanıcısının sahip olduğu işlem cücesinin. Seçenek -u listelemenizi sağlar pidler belirli bir kullanıcının sahip olduğu süreçlerin Bu durumda, kullanıcı gaurav.

Çıktı:

gaurav@ubuntu:~$ pgrep -u gaurav gnome 1752 1755 1909 1922 2021 2576 4279 gaurav@ubuntu:~$

Bu eğitimde ilerlerken, pgrep komutu, işlemin öldürülüp öldürülmediğini veya hala devam edip etmediğini doğrulamamıza yardımcı olacaktır.

şimdi konuya geçelim pkill komutu ve yürütülmesi.

kullanma pkill emretmek

kullanabilirsiniz pkill süreç adını kullanarak süreci öldürmek için Linux'ta komut. konuyu bilmesen de pid bazı süreçlerin, o zaman bile kullanarak o belirli süreci öldürebilirsiniz. pkill emretmek.

İşlemler kullanılırken tam adları veya kısmi adları ile belirtilebilir. pkill emretmek. İşlemin kısmi adını girseniz bile, pkill komutu, çalışan tüm işlemleri komuta girdiğiniz eşleşen adla eşleştirecektir.

Sözdizimi:

pkill [seçenekler][process_name_pattern] 

Örnek:

Şu anda çalışmakta olan işlemleri şu şekilde görüntüleyelim: Tepe emretmek. Ayrıca ps İşlemleri listelemek için komut.

Tepe
üst - 14:24:02 yukarı 3:12, 1 kullanıcı, ortalama yük: 0.29, 0.48, 0.58 Görevler: toplam 221, 1 çalışıyor, 172 uyuyor, 0 durduruldu, 1 zombi %Cpu(lar): 5.6 us, 1.0 sy , 0.0 ni, 92.9 id, 0.4 wa, 0.0 yüksek, 0.1 si, 0.0 st KiB Mem: 3928240 toplam, 610456 ücretsiz, 2233152 kullanılmış, 1084632 buff/cache KiB Swap: 4083708 toplam, 3378884 ücretsiz, 704824 kullanılmış. 1187268 boşuna Mem PID KULLANICI PR NI VIRT RES SHR S %CPU %MEM TIME+ KOMUT 4077 gaurav 20 0 3312128 673480 118360 S 19.6 17.1 15:13.23 Web İçeriği 3712 gaurav 20 0 3953008 453544 116476 S 4.0 11.5 9:28.39 Ana Konu 20 0 2010 gaura 4084232 111096 45024 S 1.7 2.8 3:14.85 gnome-shell 1197 kök 20 0 1039612 33704 22988 S 1.0 0.9 3:04.42 Xorg 1426 kanepe 20 0 3772396 16908 2520 S 0.7 0.4 1:50.83 beam.smp 3288 gaurav 20 0 722480 25048 18272 S 0.7 0.6 0:06.84 gnome-terminal- 3915 gaurav 20 0 2804900 231524 111228 S 0.7 5.9 0:54.42 Web İçeriği 4146 gaurav 20 0 3017924 245304 120604 S 0.7 6.2 2:01.21 Web İçeriği 4417 gaurav 20 0 2964208 234396 119160 S 0.7 . :59.90 Web İçeriği 4860 gaurav 20 0 3066800 372920 132544 S 0.7 9.5 0:48.20 Web İçeriği 16007 gaurav 20 0 41944 3780 3116 R 0.7 0.1 0:00.28 yukarı 

kullanma Tepe komutu, terminalinizde birden çok işlemi gösterecektir. İşlemi belirli bir adla görüntülemeye çalışalım. kullanacağız grep adı 'mongo' dizesiyle eşleşen bir işlemi görüntüleme komutu.

üst | grep -i mongo

Not: Burada, aramayı büyük/küçük harfe duyarlı hale getirmek için -i seçeneğini kullandım.

Bu komutun çıktısı, 'mongo' adıyla eşleşen işlemleri gösterecektir.

 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1:03.22 mongod 1158 mongodb 20 0 288564 4848 1320 S 1.0 0.1 1:03.25 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1:03.27 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1:03.29 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1:03.31 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1:03.33 mongod 1158 mongodb 20 0 288564 4848 1320 S 1.0 0.1 1:03.36 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1:03.38 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1:03.40 mongod 1158 mongodb 20 0 288564 4848 1320 S 1.0 0.1 1:03.43 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1:03.45 mongod 1158 mongodb 20 0 288564 4848 1320 S 1.0 0.1 1:03.48 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.3 0.1 1:03.49 mongod 1158 mongodb 20 0 288564 4848 1320 S 1.0 0.1 1:03.52 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1:03.54 mongod 1158 mongodb 20 0 288564 4848 1320 S 1.0 0.1 1:03.57 mongod

Şimdi, kullanacağız pkill 'mongo' adlı işlemi öldürme komutu.

pkill mongo

Bu komut şimdi mongo sürecini öldürecek. Kullanarak işlemin çıkmaya zorlanıp zorlanmadığını onaylayabiliriz. pgrep gösteren komut pid Kullanıcı tarafından belirtilen kriterlere göre çalışan sürecin.

gaurav@ubuntu:~$ pgrep mongo gaurav@ubuntu:~$

Bu komut hiçbir değer döndürmez. Bu, 'mongo' işleminin şimdi kullanılarak öldürüldüğünü doğrular. pkill emretmek.

Sık kullanılan seçenekler pkill emretmek

kullanırken pkill komutun doğru ve zahmetsiz kullanımı için belirtilen seçeneklere ihtiyacımız olacak. pkill emretmek.

SeçeneklerAçıklama
-Fboşluklar, tırnak işaretleri, özel karakterler dahil tam bağımsız değişkenlerle eşleşme
-upkill sürecini, belirtilen kullanıcı tarafından yürütülen süreçle eşleşmesi için bilgilendirmek
-1süreci yeniden yükler
-9süreci öldürür
-15bir işlemi zarif bir şekilde iptal eder

bir örnek daha görelim pkill komutunu kullanarak -F seçenek.

Aşağıda gösterildiği gibi, şu anda terminalde yürütülmekte olan iki komut vardır.

ping bbc.com ping youtube.com

Her iki süreç de tarafından başlatılır. ping atmak emretmek. Şimdi, sadece bir “ping youtube.com” işlemini sonlandırmak istediğimizi varsayalım, o zaman -F seçeneği ile pkill İşlem adındaki boşluklar ve tırnak işaretleri de dahil olmak üzere belirli bir adla bir işlemi öldüren komut.

Emretmek:

gaurav@ubuntu:~$ pkill -f "ping youtube.com" gaurav@ubuntu:~$ 

Sonuç:

gaurav@ubuntu:~$ ping youtube.com PING youtube.com (142.250.67.206) 56(84) bayt veri. bom12s08-in-f14.1e100.net'ten 64 bayt (142.250.67.206): icmp_seq=1 ttl=117 zaman=30,9 ms bom12s08-in-f14.1e100.net'ten (142.250.67.206) 64 bayt: icmp_seq=2 ttl =117 süre=121 ms bom12s08-in-f14.1e100.net'ten 64 bayt (142.250.67.206): icmp_seq=206 ttl=117 süre=86,5 ms bom12s08-in-f14.1e100.net'ten 64 bayt (142.250.67.206) ): icmp_seq=207 ttl=117 zaman=105 ms Sonlandırılmış gaurav@ubuntu:~$ 

Burada, “youtube.com'a ping at” süreç şimdi öldürüldü ve “ping bbc.com” hala terminalde çalışıyor.

Eğer kullanmış olsaydık, pkill ping komut, ikisini de öldürürdü ping atmak istenmeyen süreçlerdir.

İle kullanılan sinyaller pkill emretmek

pkill o sürece belirli bir sinyal göndererek bir süreci çıkmaya zorlar. üç olası sinyal vardır. pkill komutu, kullanıcının verdiği komuta bağlı olarak sürece gönderebilir.

Mevcut sinyallerin listesi aşağıdadır.

sinyalŞartname
1(HUP)belirtilen işlemi yeniden yükler
9 (ÖLDÜRMEK)belirtilen işlemi öldürür
15 (TERİM)belirtilen işlemi nazikçe durdurur veya durdurur

Bu eğitim için, büyük ölçüde aşağıdakilere güveneceğiz: ÖLDÜRMEK sinyal. Daha iyi anlamak için birkaç örnek üzerinden gidelim.

Kullanmak pgrep almak için komut pid apache adıyla eşleşme.

gaurav@ubuntu:~$ pgrep apache 1218 10402 10403 gaurav@ubuntu:~$
pkill - apache'yi öldür

VEYA komutu sayılarla da kullanabilirsiniz (örn. 1, 9, 15)

pkill -9 apache

Yukarıda gösterilen komutların ikisi de süreç apache'sini öldürür. ile onaylama pgrep tekrar komut verin.

gaurav@ubuntu:~$ pgrep apache gaurav@ubuntu:~$

olarak pgrep komut çıktı döndürmez, apache işleminin öldürüldüğünü kanıtlar.

Çözüm

Bu eğitimde, şunları öğrendik: pkill komut ve doğrudan işlem adını kullanarak işlemi öldürmek için nasıl kullanıldığı. Konuyu da öğrendik pgrep Belirli bir kullanıcı tarafından yürütülen işlemin işlem kimliğini almak için kullanılan komut. bu pgrep komutu, işlemin öldürülüp öldürülmediğini çapraz kontrol etmemizi sağlar.