그런데 elevator.exe
로 서버를 실행시킨 후
python example.py
로 샘플 코드를 한번 실행시킨 뒤
또다시 실행시켜보면 에러가 발생한다
에러 메시지를 보며 한참을 뒤적거리다가...
이 명령어 때문에 에러가 나는것 같은데...
이 명령어는 example.py
에서 처음으로 손님을 태우는 명령어인데...
설마, 서버가 켜질 때 문제 별로 승객이 초기화 되는 것인가?!?
그러면 해당 문제를 다시 풀려면 서버를 껐다 다시 켜야 되는 것인가?!?
그렇다. 그랬던 것이다.
해당 문제를 푼 후 다시 풀려면 서버를 껐다 켜야 했다.
그리고 이러한 작업은 굉장히 귀찮았다.
어떻게 하면 문제를 풀 때마다 새로 서버를 킬 수 있을까 고민하다가
python
이라면 분명 괜찮은 package 가 있을 것이라고 생각했고
구글링을 통해 방법을 알아낼 수 있었다.
import os
server_path = <path of elevator.exe>
pwd = ow.getcwd()
os.chdir(os.path.dirname(server_path))
os.startfile(server_path)
os.chdir(pwd)
os.startfile(server_path)
로 elevator.exe
실행시
os.chdir(os.path.dirname(server_path))
로 elevator.exe
가 위치한 디렉토리로 바꾸어주지 않으면
/viewer/main.css
와 /viewer/main.js
를 찾지 못해서
제대로 실행되지 않더라...
그러므로 elevator.exe
실행할 때만 잠깐 해당 디렉토리로 갔다가 되돌아오자
import psutil
for proc in psutil.process_iter():
if proc.name() == 'elevator.exe':
proc.terminate()
/start
API 를 호출할 때
위 코드를 적절히 넣어서
서버를 키고 끄는 것을 자동화할 수 있으니
카카오 공채를 준비하시는 많은 분들에게 도움이 되었으면~
그리고 하나더,
연습하다보면 Token 이 너무 많이 쌓여서
http://localhost:8000/viewer
창이 필요없는 토큰 값들로 가득차게 되는데
이때는 아래의 명령어로 logs
폴더의 토근값으로된 이름의 로그 파일들을 지워주시면 됩니다
find $GOPATH/src/2019-blind-2nd-elevator/logs -type f ! -name ".gitkeep" -delete