Estoy trabajando con Python Django en Windows Vista Powershell. Después de correr python manage.py runserver
, me pide CTRL-BREAK
que detenga el proceso. Pero después de escribir eso, Powershell detiene el proceso y se cierra. ¿Hay alguna manera de detener el proceso y mantener abierto el Powershell?
powershell
GTyler
fuente
fuente
Respuestas:
Desafortunadamente, el host de la consola PowerShell utiliza
Ctrl+C
para finalizar una operación en curso yCtrl+Break
finaliza la operación Y cierra la sesión del host. Es una elección muy desafortunada en mi humilde opinión, pero está allí y podemos vivir con ella.Creo que lo más fácil de hacer cuando me encuentro con situaciones como esta es desde la sesión de PowerShell, simplemente ejecutar
cmd
desde el indicador de PowerShell. Ahora en realidad estoy pasando por alto PowerShell temporalmente y, cuando termine, vuelvo fácilmente a mi sesión de PowerShell.La otra cosa que probablemente debería considerar es usar cmd.exe en lugar de PowerShell a menos que haya alguna característica de PowerShell que esté tratando de aprovechar.
fuente
Puedes probarlo de esta manera:
Su PowerShell lanza su programa Python en un trabajo
Trampa Ctrl-C por el proceso principal de PowerShell
Cuando Ctrl-C esté atrapado, detenga el trabajo iniciado en el paso 1
Luego, puede mantener su secuencia de comandos de PowerShell continua
Para iniciar un trabajo en segundo plano, use start-job
$ killMe = start-job -scriptblock {& python manage.py}
Para atrapar Ctrl-C, dígale a su consola que trate a Ctrl-C como una entrada, verifíquelo desde MSTN .
[consola] :: TreatControlCAsInput = $ true
Luego ejecute un bucle UI para verificar la entrada de claves:
Para detener el trabajo cuando se presiona "Ctrl-C",
parar-trabajo-trabajo $ killMe
Sin embargo, la vida no será fácil si necesita interactuar con su servidor Python, que se ejecuta en segundo plano. Y probablemente le gustaría mostrar la salida de su servidor constantemente.
fuente