일을 시작하고, 다른 일을 하고, 다시 시작하는 방법

일을 시작하고, 다른 일을 하고, 다시 시작하는 방법

Python을 통해 웹 서버를 시작하고 싶습니다. 성공하면 기본 브라우저에서 페이지를 열고(macOS에서는 명령을 사용하여 수행할 수 있음 open) 이전 스크립트를 다시 복원하고 싶습니다.

이것은 작동하지 않습니다:

#!/usr/bin/env bash
cd wwwroot
python3 -m http.server &
open http://0.0.0.0:8000
fg 1

을 사용할 수 없으며 jobsURL을 연 다음 Python 스크립트를 실행할 수 없습니다. 그러나 해당 URL에서 페이지를 다시 로드하고 싶지 않습니다. Python은 에 의해 중지될 때까지 계속 실행됩니다 Ctrl+C.

어쩌면 Python이 아직 준비되지 않았을 때를 open위한 명령이 필요할 수도 있습니다.sleep

답변1

몇 가지 실험을 해본 결과 이것이 $!원하는 변수인 것 같습니다. 예:

(sleep 1 && open http://0.0.0.0:8000) &
disown $!
python3 -m http.server

실행하기 전에 서버가 실행되고 있는지 확인하십시오 sleep(적어도 아마도) . open그러나 python3 -m http.server1초 이상 걸리면 여전히 실패할 수 있습니다. 이 가능성을 문서화하세요.

관련 정보