Windows Vista Powershell에서 Python Django를 사용하고 있습니다. 내가 실행 한 후 프로세스를 중지 python manage.py runserver
하도록 요청 CTRL-BREAK
합니다. 그러나 그것을 입력 한 후 Powershell은 프로세스를 중지하고 닫습니다. 프로세스를 중지하고 Powershell을 열어 둘 수있는 방법이 있습니까?
답변
불행히도 PowerShell 콘솔 호스트는 Ctrl+C
진행중인 작업을 Ctrl+Break
종료하고 작업을 종료하고 호스트 세션을 닫습니다. 가장 불행한 선택 IMHO이지만 거기에 있으며 우리는 함께 살아갑니다.
이와 같은 상황이 발생할 때 가장 쉬운 방법은 PowerShell 세션 cmd
에서 PowerShell 프롬프트에서 실행 하는 것입니다. 이제 실제로 PowerShell을 일시적으로 무시하고 완료되면 쉽게 PowerShell 세션으로 돌아갑니다.
고려해야 할 또 다른 사항은 활용하려는 PowerShell의 기능이 없으면 PowerShell 대신 cmd.exe를 사용 하는 것입니다.
답변
이 방법으로 시도해 볼 수 있습니다.
-
Powershell이 직장에서 파이썬 프로그램을 시작합니다.
-
Powershell 기본 프로세스로 Ctrl-C 트랩
-
Ctrl-C가 갇 히면 1 단계에서 시작한 작업을 중지하십시오.
그런 다음 powershell 스크립트를 계속 유지할 수 있습니다
-
백그라운드 작업을 시작하려면 start-job을 사용하십시오.
$ killMe = start-job -scriptblock {& python manage.py}
-
Ctrl-C를 트랩하려면 콘솔에 Ctrl-C를 입력으로 처리하도록 지시 하고 MSTN에서이를 확인하십시오 .
[콘솔] :: TreatControlCAsInput = $ true
그런 다음 키 입력을 확인하기 위해 UI 루프를 실행하십시오.
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
}
}
}
:
-
“Ctrl-C”를 눌렀을 때 작업을 중지하려면
스톱 작업-작업 $ killMe
그러나 백그라운드에서 실행되는 Python 서버와 상호 작용 해야하는 경우 인생은 쉽지 않습니다. 그리고 서버의 출력을 지속적으로 표시하고 싶을 것입니다.