프론트, 백 동시에 로컬에서 개발하려면 백 서버를 백그라운드로 돌리고 싶어진다. 그래서 어떤 방법이 있나 찾다가 screen
이라는 게 있다는 걸 처음 알았다. nohub
은 예전에 써 본 기억이 있는데, 무슨 차이가 있을까?
nohup [commend] &
위 명령을 실행하면 서버가 백그라운드에서 실행되며, 터미널을 닫아도 서버는 계속 동작한다.
ps -ef | grep
종료하기 위해서는 PID를 찾아서 kill
하면 된다.
또는 screen
명령을 사용하여 백엔드 서버를 백그라운드에서 실행하고 필요할 때 다시 연결할 수 있다. 리눅스나 맥 등 unix os에서 작동한다.
새로운 스크린 세션 시작
screen -S backend
스크린 세션에서 서버 실행
python manage.py runserver
스크린 세션에서 나오기 (세션 유지됨)
Ctrl + A
입력 후 d
또는 Ctrl+d
스크린 세션 다시 연결
screen -r backend
스크린 세션 종료:
exit
이 외에도 screen
에는 더 다양한 기능들이 있다.
nohup
이 백그라운드에서 프로세스를 실행하면서 터미널 세션이 종료되어도 유지할 수 있게 해주는 도구다. 명령어 자체가 'no hang up'의 줄임말이다. 참 직관적..ㅎㅎ nohup
은 단순히 종료 시 쉘이 SIGHUP을 통해 하위 프로세스를 종료하는 것을 방지하는 원리다.screen
은 terminal multiplexer로서 가상의 터미널이 하위 프로세스로 생성돼 여러 작업을 관리하고 유지할 수 있게 하는 도구다. nohup
이 간단하고 쉽다.screen
은 원격 서버 관리나 장기 실행 작업에 적합하다.screen
은 실시간 로그를 확인할 수 있다.screen
이 더 낫다.