본문 바로가기
카테고리 없음

주피터 노트북(jupyter notebook) 백그라운드에서 사용하기 (+ 토큰 얻기)

by 이든Eden 2021. 1. 14.

주피터 노트북으로 대충 코드를 짜고 바로 확인해보고, 나중에 예쁘게 파이참에 옮겨서 REST api를 만들든 패키징을 하든 그런식으로 하는 일이 잦은데 COVID-19 때문에 재택을 하다보니 주피터 노트북 포트를 뚫어놓고 원격으로 사용하고 있다. 

 

그런데 터미널로 원격접속을 해서(ssh eden@어쩌구.저쩌구.이러쿵.저러쿵 을 이용한다) 주피터 노트북을 켜놓고 쓰면 VPN이 끊겼을 때나 터미널을 종료했을 때 주피터가 꺼진다.

 

 

그래서 주피터 아래의 방법대로 노트북을 백그라운드로 켜놓으면 vpn접속이나 터미널 종료 상관없이 주피터가 살아있다.

nohup jupyter notebook --ip 아이피주소 &

각각 명령어 부분부분이 무엇을 의미하는지 잠깐 본다면, 아래와 같다.

 

  • nohup : nohup 은 “no hangups”이다. 리눅스/유닉스에서 쉘 스크립트파일을 데몬 형태로 실행시키는 명령어인데, 중요한 것은 터미널이 끊겨도 실행한 프로세스는 계속 동작하게 한다.
  • jupyter notebook : jupyter notebook을 실행시키는 명령어이다.
  • & : 명령 백그라운드 실행

 

그런데 이렇게 처음 실행했을 때, 백그라운드로 실행했기 때문에 주피터노트북의 토큰이 안보인다. 그럴 때는 

jupyter notebook list

를 하면 아래의 이미지처럼 켜져있는 주피터 노트북의 리스트가 나온다

 

?token=토큰토큰 부분 중 토큰토큰을 복붙해서 넣으면 된다.

 

그리고 이 백그라운드에서 돌아가는 주피터 노트북을 영원히 꺼버리고 싶다면 아래처럼 하면된다.

ps -l | grep jupyter
kill -9 PID  # PID 프로세스 죽이기

주의해야할 것은 주피터를 한 개만 켜놨으면 문제 없지만, 여러개 켜놨으면 어떤 PID가 내가 지우고 싶은 주피터인지 잘 확인해야 할 것이다.

 

잘 지워졌다면 다시 ps -l | grep jupyter 했을 때 더 이상 실행중인 jupyter notebook 프로세스가 없을 것이다.

 

 

 

끝.