Jupyterlab 에서 password 생성해 systemd 서비스 이용
Jupyter Lab - systemd 운영
jupyterlab 을 Itel 기반의 Ubuntu 시스템에 설치하고 시스템 서비스로 등록하는 과정.
- Ubuntu 18.04
- node.js
- Anaconda 2020
Restart your shell so the path changes take effect. You can now begin using pyenv.
1 | exec "$SHELL" |
Anaconda 배포본 설치 (Ubuntu)
우분투용 다운로드
https://www.anaconda.com/products/individual#linux
다움로드안 쉘 스크립트를 시작한다.
1 | bash ~/Downloads/Anaconda3-2020.02-Linux-x86_64.sh |
To control whether or not each shell session has the base environment activated or not, run conda config –set auto_activate_base False or True. To run conda from anywhere without having the base environment activated by default, use conda config –set auto_activate_base False. This only works if you have run conda init first.
Anaconda 를 설치하면 대부분의 패키지가 내장되어 있다.
설치후 최신 conda 환경 base를 갱신해 준다.
1 | conda update -n base -c defaults conda |
nvm으로 Node.js 설치
nvm 설치
1 | curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.0/install.sh | bash |
스크립트로 설치를 완료하면 쉘 시작시 nvm 환경을 구성하기 위해서아래 스크립이 자동으로 현재 쉘 스크립트 파일 끝에 추가된다.
만약 아래 스크립이 추가 안되면 아래 스크립트를 (~/.bash_profile, ~/.zshrc, ~/.profile, or ~/.bashrc).)에 추가한다.
1 | export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")" |
node.js 설치
1 | ~$ nvm ls-remote |
lts 최신 버전 14.0을 설치한다.
1 | ~$ nvm install --lts 14.15.1 |
node 버전을 확인
1 | ~$ node --version |
Conda 에서 jupyterlab 설치
Anaconda 나 Miniconda 를 설치하고 가상환경을 하나 생성한다.
1 | $ conda create -n tf2 jupyterlab numpy scipy matplotlib tensorflow |
JupyterLab 실행
가상환경에서 jupyterlab 을 외부에서 접속 가능하도록 실행하자.
1 | (base) $ jupyter-lab --no-browser --ip=* --port=8888 ~/Jupyter-Notebook/ |
LabConfig 디렉토리
1 | $ jupyter --paths |
JupyterLab 환경 설정
jupyter 의 config 파일을 통해서 인증과 구성을 하자.
- jupyterlab 3.x 버전: jupyter_server_config.py
- jupyterlab 2.x 버전: jupyter_notebook_config.py
Jupyter Lab 에서 설정 파일을 생성한다. 다음 명령으로 각각 $HOME/.jupyter/
위치에 jupyter_server_config.py 파일이 생성된다.
1 | (tf2)$ jupyter lab --generate-config |
패스워드 사용
jupyter_notebook_config.py 설정 파일에 비밀번호를 추가하려면 비밀번호를 생성해야 한다. 아래 명령으로 생성한다.
1 | (tf2)$ jupyter lab password |
jupyter_server_config.json
파일로 암호가 생성된다. 생성한 암호를 jupyter_server_config.py
파일의 c.ServerApp.password 항목에 입력해 준다
1 | [jupyter_server_config.py] |
Jupyter Lab 3.x 버전
1 | c.ServerApp.base_url = '/notebook' |
Jupyter Notebook, Jupyterlab 2.x 버전:
1 | c.NotebookApp.base_url = '/notebook' |
systemd 구성
nodejs, jupyter lab 을 시스템 시작 서비스로 등록한다. node.js 경로, jupyterlab 을 위한 시작 환경이 필요하다.
systemd의 unit 위치는 OS 마다 조금 다른 것 같다.
여기서는 /etc/systemd/system 밑에 jupyter.service 라는 유닛 파일에 아래 같이 파이썬 환경을 포함해 작성한다.
가상환경을 사용하고 있으므로 systemd unit의 ExecStart 의 python도 가상환경 위치로 지정해 주어야 한다.
유닛 파일: /etc/systemd/system/jupyter.service
1 | [Unit] |
유닛 파일 등록과 시작
jupyter.service 파일을 등록한다.
1 | $ sudo systemctl enable jupyter |
등록한 유닛 파일을 확인해 보자.
1 | $ sudo systemctl list-unit-files | grep jupyter |
그리고 데몬을 리로드 한다.
1 | $ sudo systemctl daemon-reload |
실행한 서비스를 종료하려면
1 | $ sudo systemctl stop jupyter |
실행 상태를 확인한다.
1 | $ sudo systemctl status jupyter |
유닛 파일 등록 해지
1 | $ sudo systemctl disable jupyter |
서비스 상태
해당 서비스 상태 확인
1 | $ sudo systemctl status jupyter |
구동에 실패한 서비스 보기
1 | $ sudo systemctl list-units --state=failed |
enabled 상태인 서비스 목록
1 | $ sudo systemctl list-units --state=enabled |