Metin dosyalarını belirtmek için IDLE'de bir program yazdım ve 349 metin dosyalarını tokeniza etmeye başladı! Nasıl durdurabilirim? Çalışan bir Python programını nasıl durdurabilirim?
Metin dosyalarını belirtmek için IDLE'de bir program yazdım ve 349 metin dosyalarını tokeniza etmeye başladı! Nasıl durdurabilirim? Çalışan bir Python programını nasıl durdurabilirim?
Yanıtlar:
Programınızı durdurmak için Control + tuşuna basmanız yeterlidir C.
^C
terminalde gösterildi ve sistem monitörü
Ctrl + Z
(en azından Linux'ta). Daha sonra, onu öldürmek istiyorsanız, kill %n
tuşuna bastığınızda "Durduruldu" nun yanındaki sayı olan "n" nin olduğu yere koşun Ctrl + Z
. Devam etmek istiyorsanız, koşun fg
.
exit()
Kodunuzdaki işlevi kullanırsanız da yapabilirsiniz . Daha ideal olarak yapabilirsiniz sys.exit()
. sys.exit()
hangi olabilir Eğer aracılığıyla paralel şeyler çalışan bile Python sonlandırmak multiprocessing
pakette.
Not: öğesini kullanmak için sys.exit()
içeri aktarmanız gerekir:import sys
sys.exit(1)
Süreci durdurmayan örnekler bulabilirim . Temelde birden fazla iş parçacığım var ve bunların her biri tarafından başlatılan harici işlemlerde bloklanıyor Popen
. Python süreci tarafından oluşturulan tüm alt süreçleri ve Python sürecinin kendisini öldürmek için bir nükleer seçeneğe ihtiyacım var. Şimdiye kadar bulamadık.
Programınız etkileşimli bir konsolda çalışıyorsa, CTRL+ tuşuna basmak ana iş parçacığında Cbir KeyboardInterrupt
istisna oluşturacaktır.
Python programınız onu yakalamazsa, KeyboardInterrupt
Python'un çıkmasına neden olur. Bununla birlikte, bir except KeyboardInterrupt:
blok veya çıplak gibi bir şey except:
, bu mekanizmanın betiğin çalışmasını gerçekten durdurmasını engelleyecektir.
Bazen KeyboardInterrupt
çalışmıyorsa SIGBREAK
bunun yerine bir sinyal gönderebilirsiniz ; Windows'ta CTRL+ Pause/Break, yakalanabilir bir KeyboardInterrupt
istisna oluşturmadan yorumlayıcı tarafından işlenebilir .
Bununla birlikte, bu mekanizmalar esas olarak yalnızca Python yorumlayıcısı çalışıyorsa ve işletim sistemi olaylarına yanıt veriyorsa çalışır. Python yorumlayıcısı herhangi bir nedenle yanıt vermiyorsa, en etkili yol, yorumlayıcıyı çalıştıran tüm işletim sistemi sürecini sonlandırmaktır. Bunun mekanizması işletim sistemine göre değişir.
Unix tarzı kabuk ortamında, basabilirsiniz CTRL+ Ziçin askıya şu anda konsolu kontrol ne olursa olsun süreç. Kabuk istemini geri aldığınızda, jobs
askıya alınmış işleri listelemek için düğmesini kullanabilir ve ilk askıya alınan işi ile sonlandırabilirsiniz kill %1
. (Tekrar çalıştırmaya başlamak isterseniz, kullanarak ön planda işe devam edebilirsiniz fg %1
; daha fazla bilgi için kabuğunuzun iş kontrolü kılavuzunu okuyun.)
Alternatif olarak, Unix veya Unix benzeri bir ortamda, Python işleminin PID'sini (işlem tanımlayıcısı) bulabilir ve PID ile öldürebilirsiniz. ps aux | grep python
Hangi Python işlemlerinin çalıştığını bulmak gibi bir şey kullanın ve ardından kill <pid>
bir SIGTERM
sinyal göndermek için kullanın .
Unix'teki kill
komut SIGTERM
varsayılan olarak gönderilir ve bir Python programı modülü SIGTERM
kullanmak için bir sinyal işleyici kurabilir signal
. Teoride, herhangi bir sinyal işleyicisi SIGTERM
süreci zarif bir şekilde kapatmalıdır. Ancak bazen süreç takılı kalırsa (örneğin, kesintisiz bir IO uyku durumunda bloke edilirse), bir SIGTERM
sinyalin etkisi olmaz çünkü süreç onu idare etmek için uyanamaz bile.
Zorla sinyallere yanıt vermeyen bir süreç öldürmek için göndermek gerekir SIGKILL
sinyalini bazen olarak anılacaktır kill -9
çünkü 9
sayısal değerdir SIGKILL
sabiti. Komut satırından, a göndermek ve işlemi hemen durdurmak için kill -KILL <pid>
(veya kill -9 <pid>
kısaca) kullanabilirsiniz SIGKILL
.
Windows'ta, Unix işlem sinyalleri sistemine sahip değilsiniz, ancak bu TerminateProcess
işlevi kullanarak çalışan bir işlemi zorla sonlandırabilirsiniz . Etkileşimli olarak bunu yapmanın en kolay yolu, Görev Yöneticisi'ni açmak python.exe
, programınıza karşılık gelen işlemi bulmak ve "İşlemi Sonlandır" düğmesini tıklamaktır. taskkill
Komutu benzer amaçlar için de kullanabilirsiniz .
Ctrl + C
.exit()
bunu yapabilirsiniz.pkill -f name-of-the-python-script
.python script.py&
Ctrl-Break , Ctrl-C'den daha güçlüdür
Çalışan bir programı durdurmak için , işlemi sonlandırmak için Ctrl+ Ckullanın.
Python'da programlı olarak işlemek için sys
modülü içe aktarın sys.exit()
ve programı sonlandırmak istediğiniz yeri kullanın.
import sys
sys.exit()
Klavyeyi kullanarak bir python komut dosyasını durdurmak için: Ctrl
+C
Kodu kullanarak durdurmak için (Bu benim için Python 3'te çalıştı):
import os
os._exit(0)
Ayrıca kullanabilirsin:
import sys
sys.exit()
veya:
exit()
veya:
raise SystemExit
Python kabuğuna yakalanmışsanız Ctrl + Z bunu yapmalıdır. Komut dosyası örneklerinin arka planda çalışmaya devam edebileceğini unutmayın, bu nedenle linux altında ilgili işlemi sonlandırmanız gerekir.
jobs
veya ps
o zaman kill 8923754
ya da öldürmeniz gereken iş kimliği / işlem kimliği ne olursa olsun
Control+ Dbenim için Windows 10'da çalışıyor. Ayrıca, exit()
sonuna koymak da işe yarıyor.
exit (), Jupyter Notebook'daysanız Kernel'i öldürecektir, bu yüzden bu iyi bir fikir değildir. raise
komutu programı durduracaktır.
Programınızı durdurmak için CTRL+D
veya exit()
.
Ctrl+ Alt+ ' DeleteYa basın ve Görev Yöneticisi açılır. Çalışan Python komutunu bulun, üzerine sağ tıklayın ve Durdur veya Öldür'e tıklayın.
ctrl+c
onu öldürmeli. Alternatif olarak,kill -9
o