본문 바로가기

언어/Python

[ Python ] teminal, console 창 닫혀도 프로그램 종료 되지 않게 실행하기

반응형

파이썬 스크립트를 터미널이 닫혀도 계속 실행되게 하려면, 다음과 같은 방법들이 있습니다:


✅ 1. nohup + & 사용 (가장 흔한 방법)

nohup python3 my_script.py &
  • nohup: 터미널 세션과 관계없이 실행 유지
  • &: 백그라운드 실행
  • 출력은 기본적으로 nohup.out에 저장됨

👉 로그 파일을 따로 지정하려면:

nohup python3 my_script.py > log.txt 2>&1 &

✅ 2. disown 명령어 사용

python3 my_script.py &
disown
  • 백그라운드 실행 후 disown 명령어로 셸과 분리
  • 다만, 터미널을 강제 종료하면 여전히 영향을 받을 수 있으므로 nohup이 더 안전함

✅ 3. tmux 또는 screen 사용 (세션 관리)

  • tmux 또는 screen을 사용해서 가상 터미널 세션 안에서 실행하면, 나중에 다시 붙어서 로그 확인도 가능

사용 예 (tmux 기준)

tmux new -s mysession
python3 my_script.py
# Ctrl + B 누른 다음 D → 세션 분리
# 나중에 다시 접속: tmux attach -t mysession

✅ 4. systemd 서비스로 등록 (서버 환경)

  • 서비스로 등록해두면 시스템 재부팅 후에도 자동 실행 가능

💡 추천

  • 단발성 스크립트: nohup 사용
  • 장기 실행 / 관리 필요: tmux 또는 systemd

필요하시면 tmux, systemd, 또는 로그 저장까지 포함한 예제도 더 드릴 수 있습니다.

반응형