Saya menulis program di IDLE untuk membuat tokenize file teks dan program itu mulai membuat tokeniza 349 file teks! Bagaimana saya bisa menghentikannya? Bagaimana cara menghentikan program Python yang sedang berjalan?
Saya menulis program di IDLE untuk membuat tokenize file teks dan program itu mulai membuat tokeniza 349 file teks! Bagaimana saya bisa menghentikannya? Bagaimana cara menghentikan program Python yang sedang berjalan?
Jawaban:
Untuk menghentikan program Anda, cukup tekan Control + C.
^C
di terminal dan monitor sistem menunjukkan python masih menggunakan banyak CPU ...
Ctrl + Z
(setidaknya di Linux). Kemudian, jika Anda ingin membunuhnya, jalankan di kill %n
mana "n" adalah nomor yang Anda dapatkan di sebelah "Berhenti" saat Anda menekan Ctrl + Z
. Jika Anda ingin melanjutkannya, jalankan fg
.
Anda juga dapat melakukannya jika Anda menggunakan exit()
fungsi dalam kode Anda. Idealnya, Anda bisa melakukannya sys.exit()
. sys.exit()
yang mungkin menghentikan Python bahkan jika Anda menjalankan sesuatu secara paralel melalui multiprocessing
paket.
Catatan: Untuk menggunakan sys.exit()
, Anda harus mengimpornya:import sys
sys.exit(1)
tidak menghentikan prosesnya. Saya pada dasarnya memiliki beberapa utas dan masing-masing dari mereka memblokir proses eksternal yang dimulai oleh Popen
. Saya membutuhkan opsi nuklir untuk membunuh semua sub-proses yang dibuat oleh proses Python serta proses Python itu sendiri. Tidak ditemukan sejauh ini.
Jika program Anda berjalan pada konsol interaktif, menekan CTRL+ Cakan memunculkan KeyboardInterrupt
pengecualian pada utas utama.
Jika program Python Anda tidak menangkapnya, program tersebut KeyboardInterrupt
akan menyebabkan Python keluar. Namun, except KeyboardInterrupt:
blok, atau sesuatu seperti telanjang except:
, akan mencegah mekanisme ini benar-benar menghentikan skrip agar tidak berjalan.
Terkadang jika KeyboardInterrupt
tidak berfungsi, Anda dapat mengirim SIGBREAK
sinyal sebagai gantinya; di Windows, CTRL+ Pause/Breakdapat ditangani oleh penerjemah tanpa membuat KeyboardInterrupt
pengecualian yang dapat ditangkap .
Namun, mekanisme ini terutama hanya berfungsi jika interpreter Python sedang berjalan dan merespons peristiwa sistem operasi. Jika interpreter Python tidak merespons karena alasan tertentu, cara paling efektif adalah menghentikan seluruh proses sistem operasi yang menjalankan interpreter. Mekanisme untuk ini bervariasi menurut sistem operasi.
Di lingkungan shell gaya Unix, Anda dapat menekan CTRL+ Zuntuk menangguhkan proses apa pun yang saat ini mengontrol konsol. Setelah Anda mendapatkan prompt shell kembali, Anda dapat menggunakan jobs
untuk membuat daftar pekerjaan yang ditangguhkan, dan Anda dapat menghentikan pekerjaan yang ditangguhkan pertama dengan kill %1
. (Jika Anda ingin menjalankannya kembali, Anda dapat melanjutkan pekerjaan di latar depan dengan menggunakan fg %1
; baca manual shell Anda tentang kontrol pekerjaan untuk informasi lebih lanjut.)
Alternatifnya, di lingkungan Unix atau Unix-like, Anda dapat menemukan PID proses Python (pengidentifikasi proses) dan mematikannya dengan PID. Gunakan sesuatu seperti ps aux | grep python
untuk menemukan proses Python mana yang sedang berjalan, dan kemudian gunakan kill <pid>
untuk mengirim SIGTERM
sinyal.
The kill
perintah pada Unix mengirim SIGTERM
secara default, dan program Python dapat menginstal penangan sinyal untuk SIGTERM
menggunakan signal
modul. Secara teori, penangan sinyal apa pun untuk SIGTERM
harus menghentikan proses dengan baik. Tetapi terkadang jika prosesnya macet (misalnya, diblokir dalam kondisi tidur IO yang tidak terputus), SIGTERM
sinyal tidak berpengaruh karena proses tersebut bahkan tidak dapat bangun untuk menanganinya.
Untuk secara paksa mematikan proses yang tidak merespons sinyal, Anda perlu mengirim SIGKILL
sinyal, kadang-kadang disebut kill -9
karena 9
adalah nilai numerik dari SIGKILL
konstanta. Dari baris perintah, Anda dapat menggunakan kill -KILL <pid>
(atau kill -9 <pid>
singkatnya) untuk mengirim SIGKILL
dan menghentikan proses yang segera berjalan.
Di Windows, Anda tidak memiliki sistem sinyal proses Unix, tetapi Anda dapat secara paksa menghentikan proses yang sedang berjalan dengan menggunakan TerminateProcess
fungsi tersebut. Secara interaktif, cara termudah untuk melakukannya adalah dengan membuka Pengelola Tugas, temukan python.exe
proses yang sesuai dengan program Anda, dan klik tombol "Akhiri Proses". Anda juga dapat menggunakan taskkill
perintah untuk tujuan serupa.
Ctrl + C
.exit()
, Anda bisa melakukannya.pkill -f name-of-the-python-script
.python script.py&
Ctrl-Break itu lebih kuat dari Ctrl-C
Untuk menghentikan program yang sedang berjalan, gunakan Ctrl+ Cuntuk menghentikan proses.
Untuk menanganinya secara terprogram dalam python, impor sys
modul dan gunakan di sys.exit()
mana Anda ingin menghentikan program.
import sys
sys.exit()
Untuk menghentikan skrip python menggunakan keyboard: Ctrl
+C
Untuk menghentikannya menggunakan kode (Ini telah berhasil untuk saya di Python 3):
import os
os._exit(0)
Anda juga bisa menggunakan:
import sys
sys.exit()
atau:
exit()
atau:
raise SystemExit
Ctrl + Z harus melakukannya, jika Anda terjebak di shell python. Perlu diingat bahwa skrip dapat terus berjalan di latar belakang, jadi di bawah linux Anda harus menghentikan proses yang sesuai.
jobs
atau ps
ke kill 8923754
jobid / id proses apa pun yang perlu Anda bunuh
Control+ Dbekerja untuk saya di Windows 10. Selain itu, meletakkan exit()
di bagian akhir juga berfungsi.
exit () akan mematikan Kernel jika Anda menggunakan Notebook Jupyter, jadi itu bukan ide yang baik. raise
perintah akan menghentikan program.
Untuk menghentikan program Anda, cukup tekan CTRL+D
atau exit()
.
Tekan Ctrl+ Alt+ Deletedan Task Manager akan muncul. Temukan perintah Python yang sedang berjalan, klik kanan padanya dan dan klik Stop atau Kill.
ctrl+c
harus membunuhnya. Atau,kill -9
itu