[참고 자료]
오라클 클라우드 인스턴스 flask 웹서버 외부 접근 허용
오라클 클라우드 네트워크 설정 방법 및 방화벽 설정법
오라클 클라우드 인스턴스 서버에서 고정 공용 IP 받는 방법
클라우드에 올려 24시간 실행하기 5편(참고용)
Oracle Cloud 평생 무료 서버 만들기
오라클 클라우드 웹서버 만들기 따라하기
오라클 클라우드 웹 서버 삽질후 정리 기록
nohup, & 명령어 사용
[논외]
추가 지식
내가 오라클 클라우드 인스턴스를 생성한 후 발급받는 ssh 키를 이용해 해당 인스턴스 내에서 flask 로 app.py 를 실행시킨 후, 오라클 클라우드 인스턴스를 나오게 되면(접속을 끊게 되면), 오라클 인스턴스는 계속 클라우드에서 실행중이지만 flask app.py 는 종료하게 된다. WHY?
=> 일반적으로 ssh 로 원격 서버에 접속한 후, 프로세스를 실행한다면, 해당 ssh 세션이 종료되면 해당 세션에서 실행한 프로세스도 함께 종료된다
따라서 우리는 백그라운드(클라우드 서버)에서 ssh 접속 세션과의 연결이 끊어져도 프로그램을 계속 돌리기 위해 nohup 과 & 명령어를 사용해야한다.
nohup 은 no hang up 의 약자이다. 말 그대로 멈추지 않는다는 의미이다. 즉 내가 세션과 연결을 종료해도 지금 실행시킨 프로그램을 종료하지 말라는 뜻이다. nohup을 실행하면 nohup으로 실행한 프로그램의 표준 출력이 nohup.out 에 쌀이게 되어 기록을 편리하게 확인할 수 있다.
사용법
중단 없이 실행하고자 하는 프로그램의 명령어 앞에 "nohup"만 붙여주면 된다. & 명령어는 백그라운드에서 프로그램을 돌리는거였지만(세션 종료시 프로그램종료), 언제부턴가 &만 사용해도 세션이 종료되도 프로그램이 종료되지 않는다고 한다.
결론적으로는 nohup + & 조합을 사용하면된다.
nohup으로 flask 서버를 실행하는 app.py 를 실행한다음, pid 를 확인하고, kill pid 로 백그라운드에서 돌아가는 해당 프로세스를 종료시킬 수 있다.
nohup python3 app.py & 을 통해 프로그램을 백그라운드에서 실행
ps -ef 명령어로 실행되고 있는 위치(pid) 확인
kill pid(예제에선 2923) 로 백그라운드 프로그램 종료시킴