로그인

Flask - nohup으로 백그라운드 실행하기

wooiljeong.github.io

nohup과 &로 파이썬 플라스크 웹 서버를 백그라운드로 실행하기

조회 1,407 2026-08-18 등록

소개

정우일 블로그에 올라온 'Flask - nohup으로 백그라운드 실행하기' 글입니다. 클라우드 서버에서 터미널을 닫은 뒤에도 Flask 웹 서버가 계속 실행되도록 하는 방법을 정리했습니다. nohup과 &를 붙여 파이썬 앱을 실행하는 명령, 로그를 실시간으로 남기는 -u 옵션, tail -f로 nohup.out 로그를 확인하는 법, lsof로 포트를 쓰는 프로세스를 찾아 kill로 종료하는 순서를 예제 명령과 함께 설명합니다. Flask 앱을 리눅스 서버에 간단히 올려 운영해 보려는 파이썬 개발자에게 유용합니다.

태그

의견 0

로그인하면 의견을 남길 수 있습니다.

아직 의견이 없습니다. 첫 의견을 남겨보세요.

비슷한 사이트

게시글

리눅스에서 파이썬 프로그램 작동시키기

리눅스에서 내가 만든 프로그램을 실행하는 방법입니다 프로그램 실행시키기 내가 만드 프로그램은 /home/monitor/monitor.py 파일입니다 파이썬3버전으로 업그레이드하면 python3 명령어로 실행 해야 합니다 $ cd /home/monitory $ python3 ./monitory.py 파일이 있는 경로로 이동하여 실행합니다 이때 백그라운드로 실행하기 위해서는 nohup를 사용합니다 $ nohup python3 monitor.py& 이렇게 입력하면 백그라운드로 실행이되기 때문에 터미널이 닫혀도 프로그램은 작동합니다 프로그램 중지시키기 프로세서명으로 종료하는 방법입니다 우선 프로세서가 실행 되고 있는지 파악하기위해 $ ps -ef | grep monitor 실행여부를 파악합니다 프로그램이 작동중이라면 monitor.py 프로세서가 있게 됩니다 이때 $ pkill -9 -ef monitor.py 명령어로 해당 프로그램을 중지시킬수 있습니다 프로그램이 오작동하여 중지될수도 아님 다른 문제가 발생될수가 있습니다 그래서 1시간에 한번씩 프로그램을 종료하고 다시 실행해주려 합니다 1시간에 한번씩 종료후 재실행하기위해서는 크론탭(crond) 활용하면됩니다 크론탭에 스케쥴 추가하기 $ vi /etc/crontab 아래와 같이 추가하면 정상적으로 작동하지 않습니다 59 * * * * root pkill -9 -ef monitor.py 0 * * * * root nohup python3 monitor.py& 이유는 nohup, python3 절대경로를 지정해 주지 않았기 때문입니다 종료 스크립트도 매시간 59:55초에 종료하고 00:00시에 다시 실행합니다 다시말해 종료후 5초후에 다시 실행해줘야 정상적으로 작동됩니다 그리고 monitor.py 파일을 실행할때 경로도 신경써야 합니다 monitory.py 안에 경로를 지정했을수도 있기 때문입니다 그래서 cd /home/monitor 디렉토리로 이동한 이후에 진행합니다 아래처럼 크론탭에 추가하면 정상작동합니다 59 * * * * root sleep 55;pkill -9 -ef monitor.py 0 * * * * root cd /home/monitor;/usr/bin/nohup /usr/bin/python3 monitor.py& 추가이후 $ systemctl restart crond 크론탭을 재실행 해주면 설정은 끝이 납니다

게시글

웹URL 주소로 캡쳐 하는 프로그램 만들어 보도록 하겠습니다

웹URL 주소로 캡쳐 하는 프로그램 만들어 보도록 하겠습니다 html2canvas 플러그인을 통해서 웹페이지를 캡쳐할수 있습니다 하지만 자신의 홈페이지에서만 가능 하지 다른 URL주소의 내용은 캡쳐할수 없는 단점이 있습니다 해서 URL주소를 입력하면 해당 주소의 내용을 캡쳐후 이미지로 반환해주는 프로그램을 만들어 보려합니다 작동원리 작업전 준비 작업 1)PHP 홈페이지 2)서브서버로 사용할 윈도우 PC 3)공유기 포트포워드 설정 (메인서버에서 가상아이피를 사용하는 서브서버로 접속하기 위함) 4)서브서버에 파이썬 설치 5)서브서버에 파이썬 flask 설치 6)서브서버에 파이썬 selenium 설치 위 순서대로 진행을 하려합니다 핵심은 메인서버에서 서브서버의 특정 프로그램을 실행 시켜주는 것입니다 일반적으로 웹상에서 다른 PC의 프로그램을 컨트롤 하기가 어렵습니다 처음 개발단계에서 웹소켓을 통해 프로그램을 컨트롤 하려 했습니다 실재로 http로는 컨트롤까지 되었습니다 그러나 홈페이지가 https인 경우 ws가 아닌 wss 웹소켓만 사용해야 하는 문제가 있어서 php file_get_contes() 함수와 flask서버를 사용해 컨트롤 하는 방법을 채택하였습니다 처음 계획이 수정되어 편법을 사용한 것이 아닌가 생각되었지만 flask 를 사용해보니 서브서버가 안정적으로 작동하여 오히려 더 나은 방법이라 판단됩니다 유튜브주소 https://www.youtube.com/watch?v=aCWmZplpts0 https://www.youtube.com/watch?v=iE1wAFZmR-w