[Python] .bat 파일로 백그라운드 실행 스크립트 생성 방법
2025. 7. 14. 14:29ㆍPython
파이썬으로 만든 파일을 백그라운드에서 실행하도록하는 스크립트 생성 방법이다.
예를들어 파이썬으로 watch_file.py 처럼 특정 폴더의 파일들를 감시하는 프로그램을 만들었다고 했을 때
이걸 백그라운드에서 돌아가게 하기 위한 작업니다.
실행은 pythonw를 이용하여 실행한다.
아래처럼 .bat파일을 하나 생성한다. (예 : run_watcher_file.bat)
@echo off
:: 관리자 권한으로 실행
:: 관리자 권한이 아니면 자동으로 관리자 권한으로 재시작
net session >nul 2>&1
if %errorlevel% neq 0 (
echo 관리자 권한 필요 - 재시작 중...
powershell -Command "Start-Process '%~f0' -Verb runAs"
exit /b
)
:: Python 백그라운드 실행
start "" pythonw "D:\Temp\watch_file.py"
흠.. 그런데 문제는 이렇게 시작했을 때 나는 이게 돌아가고 있는지 파악할 수가 없었다.
이런 난감한...
그래서 그걸 확인하고자 하는 .bat 파일을 또 만들었다. (예 : show_watcher_file.bat)
@echo off
chcp 65001 >nul
echo [🔍] 실행 중인 pythonw.exe 프로세스를 확인합니다...
echo.
powershell -NoProfile -Command ^
"Get-WmiObject Win32_Process -Filter \"Name = 'pythonw.exe'\" ^| ^
Select-Object ProcessId, CommandLine ^| ^
Format-Table -AutoSize"
echo.
echo [✔] 확인 완료. 아무 키나 누르면 닫습니다.
pause >nul
이건 pythonw로 동작하고 있는 모든 프로세스를 보여 주는 bat 파일이다.
여기까지 했으면 이제 프로세시를 죽이는 bat도 만들어야지... (예 : kill_watcher_file.bat)
@echo off
:: 관리자 권한으로 실행
:: 관리자 권한이 아니면 자동으로 관리자 권한으로 재시작
net session >nul 2>&1
if %errorlevel% neq 0 (
echo [🛡] 관리자 권한으로 다시 시작합니다...
powershell -Command "Start-Process '%~f0' -Verb runAs"
exit /b
)
echo [💥] 모든 pythonw.exe 프로세스를 강제 종료합니다...
taskkill /f /im pythonw.exe >nul 2>&1
if %errorlevel% equ 0 (
echo [✅] pythonw.exe 모두 종료 완료!
) else (
echo [⚠️] 일부 pythonw.exe 종료 실패!
)
pause
run_watcher_file.bat와 kill_watcher_file.bat는 관리자 권한으로 실행하지 않을 경우에는 알아서 관리자 권한으로 재 시작해 주도록 되어 있다.
'Python' 카테고리의 다른 글
| [Python] 한컴오피스 HWPX를 HWP로 변경 (4) | 2025.07.11 |
|---|---|
| [KAFKA] 대용량 센서데이터 저장 처리 - MongoDB 연동 (0) | 2025.05.27 |
| [KAFKA] 대용량 센서데이터 저장 처리 - FastAPI Kafka Consumer (0) | 2025.05.27 |
| [KAFKA] 대용량 센서데이터 저장 처리 - 에뮬레이터 생성 (0) | 2025.05.27 |
| [KAFKA] 대용량 센서데이터 저장 처리 - 환경설정 (0) | 2025.05.27 |