jupyter notebook
이는 동일한 컴퓨터의 모든 시스템 사용자에 대해 시작해야 하는 특별한 경우일 수 있습니다. 모든 사용자는 동일한 이름을 가진 자신만의 conda 환경(집에 설치됨)을 갖습니다 base
. 그러나 단순화를 위해 재부팅 후 모든 사용자에 대해 jupyter Notebook을 시작하는 스크립트를 사용하려고 합니다.
현재 사례는 2~3명의 사용자를 대상으로 합니다.
사용자에게 bash 세션에서 실행하도록 요청
tmux
conda activate base
jupyter notebook --ip a.b.c.d -- port pqrs
다음으로 Ctrl+b
tmux d
세션을 닫습니다.
신규 사례(사용자 수 증가)
스크립트를 실행하여 root
특정 포트의 각 사용자에 대해 jupyter 서버를 시작하십시오.
이를 위해 현재 사용자의 빈 포트에서 노트북을 시작하는 bash 스크립트를 준비했습니다.
#!/bin/bash
source ~/.bashrc
eval "$(conda shell.bash hook)"
conda activate base
current_env=$CONDA_DEFAULT_ENV
echo -e "\t ----------\n\t Current conda environment : " $current_env
################################################
# get an empty port number between a range
used=$(ss -tulpn | grep -e9{700..800} | awk '{print $5}' | grep -o -E '[^:]+$' | xargs)
#echo -e "\t\t Currently used ports : $used"
# function to generate random number within a range
rnd() {
out=$(shuf -i 9700-9800 -n 1)
echo $out
}
val=$(rnd)
# this loop breaks when val is not found in string
while grep -q "$val" <<<"$string"; do
#echo "port being used"
val=$(rnd)
done
#echo "$val"
port=$val
################################################
jupyter notebook --ip a.b.c.d --port "$port" # start on specific port
################################################
status=$(ss -tulpn | grep "jupyter" | grep "$port")
echo -e "\t\t $status \n\n"
권한: 사용자는 다른 사용자의 파일을 읽을 수 있습니다. 다른 사용자의 홈 디렉터리에서는 실행이 허용되지 않습니다(루트도 마찬가지).
질문:시스템이 재부팅될 때 모든 서버가 (사용자에 대해) 시작되도록 루트 사용자로 이를 자동화하려면 어떻게 해야 합니까?
- 한 가지 접근 방식은
nohup
대신 명령을 사용tmux
하고 루프의 모든 사용자를 반복하는 것입니다. 어떤 아이디어라도 가능합니다.
jupyterhub
Ubuntu가 필요하므로 다른 방법을 사용하지 않고 PAM 인증을 구성하는 것은 쉽지 않습니다.
감사해요.