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.
^Cterminalde gösterildi ve sistem monitörü
Ctrl + Z(en azından Linux'ta). Daha sonra, onu öldürmek istiyorsanız, kill %ntuş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 multiprocessingpakette.
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 KeyboardInterruptistisna oluşturacaktır.
Python programınız onu yakalamazsa, KeyboardInterruptPython'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 SIGBREAKbunun yerine bir sinyal gönderebilirsiniz ; Windows'ta CTRL+ Pause/Break, yakalanabilir bir KeyboardInterruptistisna 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, jobsaskı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 pythonHangi Python işlemlerinin çalıştığını bulmak gibi bir şey kullanın ve ardından kill <pid>bir SIGTERMsinyal göndermek için kullanın .
Unix'teki killkomut SIGTERMvarsayılan olarak gönderilir ve bir Python programı modülü SIGTERMkullanmak için bir sinyal işleyici kurabilir signal. Teoride, herhangi bir sinyal işleyicisi SIGTERMsü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 SIGTERMsinyalin 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 SIGKILLsinyalini bazen olarak anılacaktır kill -9çünkü 9sayısal değerdir SIGKILLsabiti. 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 TerminateProcessiş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. taskkillKomutu 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 sysmodü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.
jobsveya pso zaman kill 8923754ya 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. raisekomutu 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+conu öldürmeli. Alternatif olarak,kill -9o