IPython Notebook을 올바르게 닫는 방법은 무엇입니까?


110

IPython Notebook을 올바르게 닫는 방법은 무엇입니까?

현재는 브라우저 탭을 닫고 Ctrl+C터미널에서 사용 합니다.
안타깝게도 틱 exit()Kill kernel upon exit도움이되지 않습니다 (커널을 죽이지 만 iPython을 종료하지는 않습니다).


특정 커널 (특정 포트에서 열린)의 PID는 ps -ax또는 로 볼 수 있습니다 top. 따라서 커널은 특정 프로세스를 종료하기 위해 [관리 권한]으로 선택적으로 중지 할 수 있습니다. # kill PID-of-ki 이것은 커널에 대한 내부 종료 절차를 허용하지 않지만 강제 Ctl-C 유형도 허용하지 않습니다 .... 누구든지 알고 있습니까? 이것이 jupyter에 대한 계획이라면?
Dr C

답변:


119

현재 터미널에서 Ctrl + C보다 더 좋은 방법은 없습니다.

우리는 명시 적으로 종료하는 방법에 대해 생각하고 있지만 노트북은 단일 사용자 응용 프로그램으로, 사용자가 자유롭게 중지 할 수있는 노트북과 다중 사용자 서버로, 관리자 만 할 수 있어야하는 사이에 약간의 긴장이 있습니다. 그것을 중지합니다. 우리는 아직 차이점을 처리하는 방법을 찾지 못했습니다.

(향후 독자를 위해 0.12가 출시되고 0.13이 개발중인 상황입니다.)

2017 년 12 월 업데이트

IPython 노트북은 Jupyter 노트북이되었습니다. 최신 버전에는 jupyter notebook stop해당 시스템에서 실행중인 서버를 종료 하는 셸 명령 이 추가되었습니다 . 기본 포트 8888이 아닌 경우 명령 줄에서 포트 번호를 전달할 수 있습니다.

실행중인 서버를 표시하고 종료 할 수있는 데스크톱 애플리케이션 인 nbmanager 를 사용할 수도 있습니다 .

마지막으로 다음을 추가하기 위해 노력하고 있습니다.

  • 지정된 시간 동안 사용하지 않을 경우 서버를 자동으로 종료하는 구성 옵션입니다.
  • 사용자 인터페이스의 버튼으로 서버를 종료합니다. (이렇게 오래 걸린다는 것이 약간 미친 짓이라는 것을 알고 있습니다. UI 변경은 논란의 여지가 있습니다.)

1
아마도 메뉴의 버튼을 통해 명시 적으로 죽일 수있는 옵션을 제공할까요? 아니면 구성 파일과 명령 줄에서 사용할 수 없나요? 따라서 서버가 항상 실행되기를 원하는 사람들은 올바른 구성을 설정할 수 있습니다.
gaborous

7
몇 년이 지났는데이 상황이 전혀 바뀌 었나요? Ctrl + C가 여전히 iPython Notebook 서버를 종료하는 유일한 방법입니까?
EFC

노트북 UI 내부에서 종료 할 수있는 방법은 아직 없지만 노트북 서버와 커널을 나열하고 종료 할 수있는 도구 인 nbmanager를 작성 했습니다 .
Thomas K

내가 사용하는 가정 그래서 것은 jupyter notebook &이후 나쁜 생각 Ctrl+는 C이 상황에 적용되지 않습니다
나빈 데니스

나는 이것을 시도했지만 ctrl + C 이외의 Jupyter Notebook 프로세스를 실행하는 콘솔에 아무것도 입력 할 수있는 방법이 없습니다. 새 powershell / 명령 프롬프트를 열고 거기에서 jupyter notebook stop을 입력하려고 시도했지만 작동하지 않았습니다.
julianhatwell

24

나처럼 백그라운드에서 jupyter를 실행하면 :

jupyter notebook &> /dev/null &

그런 다음 Ctl-C 대신 jupyter를 완전히 종료하려면 alias 명령을 작성하십시오.

echo 'alias quitjupyter="kill $(pgrep jupyter)"' >> ~/.bashrc

터미널을 다시 시작하십시오. 모든 jupyter 인스턴스를 종료합니다.

quitjupyter

참고 : 위와 같이 작은 따옴표 안에 큰 따옴표를 사용하십시오. 다른 방법은 .bashrc에 쓰기 전에 표현식을 평가합니다 ( 'kill 1430'또는 현재 jupyter 인스턴스와 연관 될 수있는 프로세스 번호가 아닌 명령 자체를 작성하려는 경우). 물론 원하는 별칭을 사용할 수 있습니다. 실제로 'qjup'을 사용합니다.

echo 'alias qjup="kill $(pgrep jupyter)"' >> ~/.bashrc

터미널을 다시 시작하십시오. 모든 jupyter 인스턴스를 종료합니다.

qjup

kill $(pgrep jupyter)자체로 훌륭합니다. jupyter notebook충돌이 발생한 원격 터미널에서 실행 중이었습니다. CTRL + C 접근 방식은 다시 로그인 할 때 불가능합니다. 원격을 다시 시작하는 핵 옵션을 저장하면 좋습니다.
MichaelChirico

2
왜 안돼 pkill jupyter? pkill입니다 pgreb만, 프로세스를 종료합니다.
rmstmppr

21

나는 받아 들여진 대답이 오래되어 더 이상 유효하지 않다고 생각합니다.

파일 메뉴 항목의 웹 인터페이스에서 jupyter 노트북을 종료 할 수 있습니다.

여기에 이미지 설명 입력

"닫기 및 중지"에 마우스 커서를 이동하면 다음과 같은 설명이 표시됩니다.

여기에 이미지 설명 입력

그리고 "닫기 및 중지"를 클릭하면 터미널 화면에 다음과 같은 메시지가 나타납니다.

여기에 이미지 설명 입력


15
명확히하기 위해 이것은 Python 코드를 실행하는 프로세스 인 kernel을 중지합니다 . 그것은 멈추지 않는다 노트북 서버 등로드 및 파일 저장, 취급, 노트북 인터페이스를 만든다
토마스 K

10

첫 번째 단계는 열려있는 모든 노트북을 저장하는 것입니다. 그런 다음 실행중인 Jupyter 노트북을 종료하는 것을 고려하십시오. 다음과 같은 간단한 명령을 사용할 수 있습니다.

$ jupyter notebook stop 
Shutting down server on port 8888 ...

또한 포트 번호를 인수로 사용하며 jupyter 노트북을 정상적으로 종료 할 수 있습니다.

예 :

jupyter notebook stop 8889 
Shutting down server on port 8889 ...

또한 현재 실행중인 juypter 인스턴스를 확인하려면 아래 명령을 확인하십시오.

shell> juypter notebook list 
Currently running servers:
http://localhost:8888/?token=ef12021898c435f865ec706d7c9af8607a7ba58bbee98632 :: /Users/username/jupyter-notebooks [/code]

7

이 명령은 나를 위해 일했습니다.

jupyter notebook list # shows the running notebooks and their port-numbers
                      # (for instance: 8080)
lsof -n -i4TCP:[port-number] # shows PID.
kill -9 [PID] # kill the process.

이 대답은 여기 에서 채택되었습니다 .


5

아무것도 작동하지 않으면 작업 관리자 (Windows 인 경우)에서 pythonw 프로세스를 종료하십시오.


4
Linux (Ubuntu 14.04)

앞서 언급했듯이 먼저 ipynb / jupyter 브라우저 세션의 "실행 중"탭으로 이동하여 ipython 노트북 프로세스를 올바르게 종료 한 다음 콘솔에서 열린 터미널을 확인하고 ctrl-c로 종료합니다. 후자는 가능하면 피해야합니다.

를 실행하고 ipython notebook list다른 포트에서 ipython 서버가 계속 실행되는 것을 확인하는 경우 기존 노트북이 제공되는 포트를 기록해 두십시오. 그런 다음 TCP 포트를 종료합니다.

fuser -k 'port#'/tcp 

이 작업과 관련된 다른 위험이 있는지 잘 모르겠습니다. 그렇다면 알려주세요.


2

환경


내 OS는 Ubuntu 16.04이고 jupyter는 4.3.0입니다.

방법


먼저 브라우저의 홈페이지에서 jupyter를 로그 아웃했습니다 (로그 아웃 버튼은 오른쪽 상단에 있음).

둘째, Ctrl + C터미널에 입력 하면 다음과 같이 표시됩니다.

[I 15 : 59 : 48.407 NotebookApp] 로컬 디렉토리에서 노트북 제공 중단됨 : / home / Username 0 활성 커널

Jupyter 노트북은 http : // localhost : 8888 /? token = a572c743dfb73eee28538f9a181bf4d9ad412b19fbb96c82 에서 실행됩니다.

이 노트북 서버를 종료 하시겠습니까 (y / [n])?

마지막 단계 y에서 5 초 이내에 입력 하고 다음이 표시되면 다음을 입력합니다.

[C 15 : 59 : 50.407 NotebookApp] 종료 확인
[I 15 : 59 : 50.408 NotebookApp] 커널 종료

축하합니다! jupyter를 성공적으로 닫았습니다.


2

사실 저는 kill 또는 task manager를 사용하여 프로세스를 죽이는 것보다 더 깨끗한 방법이 있다고 생각합니다.

Jupyter 노트북 대시 보드 ( 'jupyter 노트북'을 처음 실행할 때 표시되는 브라우저 인터페이스)에서 브라우저에서 닫았지만 커널이 여전히 실행중인 노트북 파일의 위치를 ​​찾습니다.

iPython 노트북 파일은 책 아이콘과 함께 나타납니다. 실행중인 커널이있는 경우 녹색으로 표시되고 커널이 실행되지 않는 경우 회색으로 표시됩니다.

실행중인 파일 옆의 확인란을 선택한 다음 그 위에 나타나는 종료 버튼을 클릭하면됩니다.

그러면 특정 노트북과 관련된 커널이 제대로 종료됩니다.


0

브라우저 세션에서로 이동 Kernel한 다음을 클릭 할 수도 있습니다 Restart and Clear Output.


0

2018 년 2 월 13 일에 출시 된 Jupyter / IPython 노트북 빠른 시작 가이드 문서에서 복사하여 붙여넣고 있습니다. http://jupyter-notebook-beginner-guide.readthedocs.io/en/latest/execute.html

1.3.3 노트북 닫기 : 커널 종료 노트북이 열리면 "계산 엔진"(커널이라고 함)이 자동으로 시작됩니다. 노트북 브라우저 탭을 닫아도 커널이 종료되지 않고 명시 적으로 종료 될 때까지 커널이 계속 실행됩니다. 커널을 종료하려면 관련 노트북으로 이동하여 메뉴 파일-> 닫기 및 중지를 클릭합니다. 또는 노트북 대시 보드에는 실행중인 모든 노트북 (예 : 커널)을 표시하고 종료 (종료 버튼 클릭)를 허용하는 실행 탭이 있습니다.

요약 : 먼저 실행중인 노트북을 닫고 중지합니다.

1.3.2 Jupyter 노트북 앱 종료 브라우저 (또는 탭)를 닫아도 Jupyter 노트북 앱이 닫히지 않습니다. 완전히 종료하려면 관련 터미널을 닫아야합니다. 자세히 설명하면 Jupyter 노트북 앱은 브라우저에 기본 주소 ( http : // localhost : 8888 )로 표시되는 서버입니다 . 브라우저를 닫아도 서버는 종료되지 않습니다. 이전 주소를 다시 열 수 있으며 Jupyter 노트북 앱이 다시 표시됩니다. Jupyter 노트북 앱의 여러 사본을 실행할 수 있으며 유사한 주소에 표시됩니다 (포트 인 ":"뒤의 숫자 만 새 사본마다 증가 함). 하나의 Jupyter 노트북 앱으로 이미 많은 노트북을 열 수 있으므로 Jupyter 노트북 앱의 여러 사본을 실행하지 않는 것이 좋습니다.

요약 : 둘째, Jupyter를 실행 한 터미널을 종료합니다.


0

1 단계-셸에서 control + z (control + c) 만 수행합니다. 2 단계 _ 웹 브라우저를 닫습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.