파이썬 파일을 실행시키면 완료가 될때까지 창에서 기다려야한다. 백그라운드에서 실행을 시키면 앱을 종료하여도 계속해서 실행할 수 있다.
오래걸리는 작업이라면 굳이 켜놓고 기다리는 것보다 백그라운드에서 실행하는 것이 효율적이다.
리눅스는 nohup 명령어를 이용해서 백그라운드 작업을 하는것과 달리 윈도우에서는 powershell이나 cmd 명령어를 사용해 백그라운드 실행을 구현할 수 있다.
Start-Job 명령어를 사용하면 백그라운드 작업(Job)으로 실행할 수 있으며, PowerShell의 스트림 리디렉션 연산자인 *>를 사용하면 모든 출력을 하나의 파일로 저장할 수 있다.
Start-Job -ScriptBlock { python 파일명.py *> 파일명.log }
여기서
하나의 로그 파일에 모든 출력을 저장할 수 있어 효율적이다.
백그라운드에서 파일이 실제로 실행중인지 확인 하는 방법이 있다.
Get-Job
Get-Content backfill.log -Wait
Get-Process -Name python
CMD 명령어를 사용하면 Linux의 nohup과 유사한 효과를 낼 수 있다. 아래와 같이 cmd를 통해 start /b 옵션을 활용하면 백그라운드에서 실행할 수 있다.
cmd /c "start /b python 파일.py > 파일.log 2>&1"
> backfill.log 2>&1: 표준 출력과 표준 에러를 모두 backfill.log 파일로 리디렉션.