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çenek | Açıklama |
-u | belirli bir kullanıcının sahip olduğu işlem kimliğini listele |
-C | eşleşen işlemlerin sayısını saymak |
-BENCE | yalnızca işlem adlarını listele |
-a | iş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çenekler | Açıklama |
-F | boşluklar, tırnak işaretleri, özel karakterler dahil tam bağımsız değişkenlerle eşleşme |
-u | pkill sürecini, belirtilen kullanıcı tarafından yürütülen süreçle eşleşmesi için bilgilendirmek |
-1 | süreci yeniden yükler |
-9 | süreci öldürür |
-15 | bir 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.