Saya bekerja dengan Python Django di Windows Vista Powershell. Setelah saya berlari python manage.py runserver
, ia meminta saya CTRL-BREAK
untuk menghentikan proses. Tetapi setelah saya mengetik itu, Powershell menghentikan proses dan menutup. Apakah ada cara untuk menghentikan proses dan menjaga Powershell terbuka?
powershell
GTyler
sumber
sumber
Jawaban:
Sayangnya host konsol PowerShell menggunakan
Ctrl+C
untuk menghentikan operasi yang sedang berlangsung danCtrl+Break
mengakhiri operasi DAN menutup sesi host. Ini adalah pilihan IMHO yang paling disayangkan tetapi ada di sana dan kita bisa hidup dengannya.Saya menemukan hal termudah untuk dilakukan ketika saya mengalami situasi seperti ini adalah dari sesi PowerShell cukup jalankan
cmd
dari prompt PowerShell. Sekarang saya benar-benar melewati PowerShell sementara dan saya mudah kembali ke sesi PowerShell saya setelah selesai.Hal lain yang mungkin harus Anda pertimbangkan adalah menggunakan cmd.exe daripada PowerShell kecuali ada beberapa fitur PowerShell yang Anda coba manfaatkan.
sumber
Anda dapat mencobanya dengan cara ini:
PowerShell Anda meluncurkan program python Anda dalam suatu pekerjaan
Perangkap Ctrl-C dengan proses utama PowerShell
Ketika Ctrl-C terjebak, hentikan pekerjaan yang diluncurkan di langkah 1
Kemudian, Anda dapat membuat skrip PowerShell Anda berlanjut
Untuk meluncurkan pekerjaan latar belakang, gunakan pekerjaan mulai
$ killMe = start-job -scriptblock {& python manage.py}
Untuk menjebak Ctrl-C, beri tahu konsol Anda untuk memperlakukan Ctrl-C sebagai input, periksa ini dari MSTN .
[konsol] :: TreatControlCAsInput = $ true
Kemudian jalankan loop UI untuk memeriksa input kunci:
Untuk menghentikan pekerjaan ketika "Ctrl-C" dipukul,
stop-job -job $ killMe
Namun, hidup tidak akan mudah jika Anda perlu berinteraksi dengan server python Anda, yang berjalan di latar belakang. Dan Anda mungkin ingin menampilkan output server Anda terus-menerus.
sumber