Você pode tentar desta maneira:
Seu PowerShell lança seu programa Python em um trabalho
Prenda Ctrl-C pelo processo principal do PowerShell
Quando Ctrl-C estiver interceptado, pare o trabalho iniciado na etapa 1
Em seguida, você pode manter o script do PowerShell continuando
Para iniciar um trabalho em segundo plano, use start-job
$ killMe = start-job -scriptblock {& python manage.py}
Para interceptar o Ctrl-C, diga ao seu console para tratar o Ctrl-C como uma entrada, verifique isso no MSTN .
[console] :: TreatControlCAsInput = $ true
Em seguida, execute um loop da interface do usuário para verificar a entrada de chaves:
while ($true) {
write-host "Processing..."
if ([console]::KeyAvailable) {
$key = [system.console]::readkey($true)
if (($key.modifiers -band [consolemodifiers]"control") -and
($key.key -eq "C")) {
:
break
}
}
}
:
Para interromper o trabalho quando pressionar "Ctrl-C",
stop-job -job $ killMe
No entanto, a vida não será fácil se você precisar interagir com o servidor python, que está sendo executado em segundo plano. E você provavelmente gostaria de exibir a saída do seu servidor constantemente.