¿Cómo cerrar IPython Notebook correctamente?

110

¿Cómo cerrar IPython Notebook correctamente?

Actualmente, solo cierro las pestañas del navegador y luego uso Ctrl+Cen la terminal.
Desafortunadamente, exit()ni hacer tictac Kill kernel upon exitno ayuda (matan el kernel pero no salen del iPython).

Piotr Migdal
fuente
El PID de un kernel en particular (abierto en un puerto en particular) se puede ver con ps -axo top. Por lo tanto, los núcleos se pueden detener selectivamente con [privilegio administrativo] para terminar ese proceso en particular: # kill PID-of-ki Esto no permite procedimientos de apagado interno para el núcleo, pero tampoco el tipo Ctl-C forzado ... ¿Alguien sabe si esto está planeado para jupyter?
Dr C

Respuestas:

119

Actualmente, no hay una mejor manera de hacerlo que Ctrl + C en la terminal.

Estamos pensando en cómo tener un apagado explícito, pero existe cierta tensión entre el portátil como una aplicación de un solo usuario, donde el usuario es libre de detenerlo, y como un servidor multiusuario, donde solo un administrador debería poder para detenerlo. Todavía no hemos descubierto cómo manejar las diferencias.

(Para los futuros lectores, esta es la situación con 0.12 lanzado y 0.13 en desarrollo).

Actualización de diciembre de 2017

El Cuaderno IPython se ha convertido en el Cuaderno Jupyter. Una versión reciente ha agregado un jupyter notebook stopcomando de shell que apagará un servidor que se ejecuta en ese sistema. Puede pasar el número de puerto en la línea de comando si no es el puerto predeterminado 8888.

También puede usar nbmanager , una aplicación de escritorio que puede mostrar servidores en ejecución y apagarlos.

Finalmente, estamos trabajando para agregar:

  • Una opción de configuración para apagar automáticamente el servidor si no lo usa durante un tiempo específico.
  • Un botón en la interfaz de usuario para apagar el servidor. (Sabemos que es un poco loco que haya tardado tanto. Cambiar la interfaz de usuario es controvertido).
Thomas K
fuente
1
¿Quizás ofrecer una opción para permitir la eliminación explícita (¿a través de un botón en el menú?) O no en el archivo de configuración y la línea de comandos. Para que las personas que quieran que el servidor se ejecute siempre puedan configurar la configuración correcta.
gaborous
7
Han pasado algunos años, ¿esta situación ha cambiado algo? ¿Ctrl + C sigue siendo la única forma segura de apagar un servidor iPython Notebook?
EFC
Todavía no hay una manera de apagarlo desde dentro de la interfaz de usuario del portátil, pero escribí nbmanager , una herramienta que puede listar y matar servidores y núcleos de portátiles.
Thomas K
Así que supongo que usar jupyter notebook &es una mala idea ya que Ctrl+ Cno se aplica a esta situación
Naveen Dennis
Intenté esto, pero no hay forma de escribir nada en la consola que ejecuta el proceso de Jupyter Notebook que no sea ctrl + C. Intenté abrir un nuevo PowerShell / símbolo del sistema y escribir jupyter notebook stop desde allí, pero no funcionó.
julianhatwell
24

Si ejecuta jupyter en segundo plano como yo:

jupyter notebook &> /dev/null &

Luego, para salir de jupyter por completo, en lugar de Ctl-C, cree un comando de alias:

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

Reinicia tu terminal. Mata todas las instancias de jupyter:

quitjupyter

Nota: use comillas dobles dentro de comillas simples como se muestra arriba. A la inversa, evaluará la expresión antes de escribirla en su .bashrc (desea escribir el comando en sí, no 'kill 1430' o cualquier número de proceso que pueda estar asociado con una instancia actual de jupyter). Por supuesto, puede utilizar cualquier alias que desee. De hecho, uso 'qjup':

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

Reinicia tu terminal. Mata todas las instancias de jupyter:

qjup
BBW antes de Windows
fuente
El kill $(pgrep jupyter)por sí mismo es excelente. Estaba corriendo jupyter notebookdesde una terminal remota que se estrelló; el enfoque CTRL + C es imposible al volver a iniciar sesión. Ahorrando la opción nuclear de reiniciar el control remoto, esto es genial.
MichaelChirico
2
¿Por qué no simplemente pkill jupyter? pkilles pgreb, pero para matar procesos.
rmstmppr
21

Creo que la respuesta aceptada está desactualizada y ya no es válida.

Puede finalizar el cuaderno jupyter desde la interfaz web en el elemento del menú del archivo.

ingrese la descripción de la imagen aquí

Cuando mueva el cursor del mouse en "cerrar y detener", verá la siguiente explicación.

ingrese la descripción de la imagen aquí

Y cuando haga clic en "cerrar y detener", verá el siguiente mensaje en la pantalla del terminal.

ingrese la descripción de la imagen aquí

wasabi
fuente
15
Para aclarar, esto detiene el kernel , el proceso que ejecuta su código Python. No detiene el servidor de la computadora portátil , que hace las interfaces de la computadora portátil, se ocupa de cargar y guardar archivos, etc.
Thomas K
10

El primer paso es guardar todos los cuadernos abiertos. Y luego piense en apagar su Jupyter Notebook en ejecución. Puede utilizar este sencillo comando:

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

Lo que también toma el número de puerto como argumento y puede apagar el portátil jupyter sin problemas.

Por ejemplo:

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

Además, para conocer su instancia actual de juypter, verifique el siguiente comando:

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

Estos comandos funcionaron para mí:

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.

Esta respuesta fue adaptada de aquí .

PatriceG
fuente
5

Intente eliminar el proceso pythonw desde el Administrador de tareas (si es Windows) si nada más funciona.

fixxxer
fuente
4
Linux (Ubuntu 14.04)

Como se mencionó, intente eliminar los procesos del cuaderno ipython correctamente yendo primero a la pestaña "en ejecución" en su sesión del navegador ipynb / jupyter, y luego verifique los terminales abiertos en su consola y apague con ctrl-c. Este último debe evitarse si es posible.

Si ejecuta un ipython notebook listy continúa viendo la ejecución de servidores ipython en diferentes puertos, tome nota de los puertos a los que se sirven los portátiles existentes. Luego apague sus puertos TCP:

fuser -k 'port#'/tcp 

No estoy seguro de si existen otros riesgos relacionados con hacer esto. Si es así, avíseme.

Soham
fuente
2

Ambiente


Mi sistema operativo es Ubuntu 16.04 y jupyter es 4.3.0.

Método


Primero, cerré la sesión de jupyter en su página de inicio en el navegador (el botón de cierre de sesión está en la parte superior derecha)

En segundo lugar, escriba en Ctrl + Csu terminal y muestra:

[I 15: 59: 48.407 NotebookApp] interrumpido Sirviendo cuadernos desde el directorio local: / home / Nombre de usuario 0 kernels activos

Jupyter Notebook se está ejecutando en: http: // localhost: 8888 /? Token = a572c743dfb73eee28538f9a181bf4d9ad412b19fbb96c82

¿Apagar este servidor portátil (y / [n])?

Último paso, escriba ydentro de los 5 segundos, y si muestra:

[C 15: 59: 50.407 NotebookApp] Apagado confirmado
[I 15: 59: 50.408 NotebookApp] Apagando kernels

¡Felicidades! Cierras tu jupyter con éxito.

WY Hsu
fuente
2

En realidad, creo que hay una forma más limpia que matar el proceso (s) usando kill o el administrador de tareas.

En Jupyter Notebook Dashboard (la interfaz del navegador que ve cuando inicia por primera vez 'jupyter notebook'), busque la ubicación de los archivos de notebook que ha cerrado en el navegador, pero cuyos kernels aún pueden estar ejecutándose.

Los archivos de iPython Notebook aparecen con un icono de libro, que se muestra en verde si tiene un kernel en ejecución o en gris si el kernel no se está ejecutando.

Simplemente seleccione la casilla de verificación junto al archivo en ejecución, luego haga clic en el botón Apagar que aparece encima.

Esto cerrará correctamente el kernel asociado con ese portátil específico.

Andrew Medlin
fuente
0

En la sesión del navegador también puede ir Kernelay hacer clic Restart and Clear Output.

Susanna Maier
fuente
0

Estoy copiando el pegado de la documentación de la Guía de inicio rápido de Jupyter / IPython Notebook, publicada el 13 de febrero de 2018. http://jupyter-notebook-beginner-guide.readthedocs.io/en/latest/execute.html

1.3.3 Cerrar un cuaderno: cierre del kernel Cuando se abre un cuaderno, su “motor computacional” (llamado kernel) se inicia automáticamente. Cerrar la pestaña del navegador del portátil no cerrará el kernel, en su lugar, el kernel seguirá funcionando hasta que se cierre explícitamente. Para apagar un kernel, vaya al cuaderno asociado y haga clic en el menú Archivo -> Cerrar y detener. Alternativamente, el Panel de control del portátil tiene una pestaña llamada En ejecución que muestra todos los portátiles en ejecución (es decir, kernels) y permite apagarlos (haciendo clic en un botón Apagar).

Resumen: Primero cierre y detenga la ejecución de los portátiles.

1.3.2 Cerrar la aplicación Jupyter Notebook Al cerrar el navegador (o la pestaña) no se cerrará la aplicación Jupyter Notebook. Para apagarlo por completo, debe cerrar la terminal asociada. Más detalladamente, la aplicación Jupyter Notebook es un servidor que aparece en su navegador en una dirección predeterminada ( http: // localhost: 8888 ). Cerrar el navegador no apagará el servidor. Puede volver a abrir la dirección anterior y se volverá a mostrar la aplicación Jupyter Notebook. Puede ejecutar muchas copias de la aplicación Jupyter Notebook y aparecerán en una dirección similar (solo el número después de “:”, que es el puerto, se incrementará con cada nueva copia). Dado que con una sola aplicación Jupyter Notebook ya puede abrir muchos blocs de notas, no recomendamos ejecutar varias copias de la aplicación Jupyter Notebook.

Resumen: Segundo, salga de la terminal desde la que disparó Jupyter.

Subhrajit Bhattacharya
fuente
0

Paso 1: en el shell, simplemente haga control + z (control + c) Paso 2 _ cierre el navegador web

Reihan_amn
fuente