Bagaimana cara menutup Notebook IPython dengan benar?

110

Bagaimana cara menutup Notebook IPython dengan benar?

Saat ini, saya hanya menutup tab browser dan kemudian menggunakan Ctrl+Cdi terminal.
Sayangnya, baik exit()maupun centang Kill kernel upon exittidak membantu (mereka membunuh kernel tetapi tidak keluar dari iPython).

Piotr Migdal
sumber
PID dari kernel tertentu (terbuka di port tertentu) dapat dilihat dengan ps -axatau top. Dengan demikian kernel dapat dihentikan secara selektif dengan [hak akses administratif] untuk menghentikan proses tertentu itu: # kill PID-of-ki Ini tidak memungkinkan prosedur shutdown internal untuk kernel, tetapi juga tidak jenis Ctl-C paksa .... Apakah ada yang tahu apakah ini direncanakan untuk jupyter?
Dr C

Jawaban:

119

Saat ini tidak ada cara yang lebih baik untuk melakukannya selain Ctrl + C di terminal.

Kami sedang memikirkan tentang cara mematikan secara eksplisit, tetapi ada beberapa ketegangan antara notebook sebagai aplikasi pengguna tunggal, di mana pengguna bebas untuk menghentikannya, dan sebagai server multi-pengguna, di mana hanya admin yang dapat untuk menghentikannya. Kami belum menemukan cara menangani perbedaan tersebut.

(Untuk pembaca selanjutnya, ini adalah situasi dengan 0,12 dirilis dan 0,13 dalam pengembangan.)

Perbarui Desember 2017

Notebook IPython telah menjadi Notebook Jupyter. Versi terbaru telah menambahkan jupyter notebook stopperintah shell yang akan mematikan server yang berjalan pada sistem itu. Anda dapat memberikan nomor port pada baris perintah jika itu bukan port default 8888.

Anda juga dapat menggunakan nbmanager , aplikasi desktop yang dapat menampilkan server yang sedang berjalan dan mematikannya.

Terakhir, kami sedang berupaya menambahkan:

  • Opsi config untuk mematikan server secara otomatis jika Anda tidak menggunakannya selama waktu tertentu.
  • Tombol di antarmuka pengguna untuk mematikan server. (Kami tahu ini agak gila karena butuh waktu selama ini. Mengubah UI itu kontroversial.)
Thomas K
sumber
1
Mungkin kemudian hanya menawarkan opsi untuk memungkinkan pembunuhan eksplisit (melalui tombol di menu?) Atau tidak di file konfigurasi dan baris perintah? Sehingga orang yang ingin servernya selalu berjalan bisa saja mengatur config yang benar.
gaborous
7
Sudah beberapa tahun, apakah situasi ini berubah sama sekali? Apakah Ctrl + C masih satu-satunya cara yang pasti untuk mematikan server Notebook iPython?
EFC
Masih belum ada cara untuk mematikannya dari dalam UI notebook, tetapi saya menulis nbmanager , alat yang dapat mendaftar dan mematikan server dan kernel notebook.
Thomas K
Jadi saya menganggap penggunaan jupyter notebook &adalah ide yang buruk karena Ctrl+ Ctidak berlaku untuk situasi ini
Naveen Dennis
Saya mencoba ini, tetapi tidak ada cara untuk mengetik apa pun ke konsol yang menjalankan proses Notebook Jupyter selain ctrl + C. Saya mencoba membuka PowerShell / command prompt baru dan mengetik notebook jupyter berhenti dari sana, tetapi tidak berhasil.
julianhatwell
24

Jika Anda menjalankan jupyter di latar belakang seperti saya:

jupyter notebook &> /dev/null &

Kemudian untuk keluar dari jupyter sepenuhnya, alih-alih Ctl-C, buat perintah alias:

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

Mulai ulang terminal Anda. Bunuh semua instance jupyter:

quitjupyter

Catatan: gunakan tanda kutip ganda di dalam tanda kutip tunggal seperti yang ditunjukkan di atas. Sebaliknya akan mengevaluasi ekspresi sebelum menuliskannya ke .bashrc Anda (Anda ingin menulis perintah itu sendiri bukan 'kill 1430' atau nomor proses apa pun yang mungkin terkait dengan instance jupyter saat ini). Tentu saja Anda bisa menggunakan alias apa pun yang Anda inginkan. Saya sebenarnya menggunakan 'qjup':

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

Mulai ulang terminal Anda. Bunuh semua instance jupyter:

qjup
BBW Sebelum Windows
sumber
Dengan kill $(pgrep jupyter)sendirinya luar biasa. Saya menjalankan jupyter notebookdari terminal jarak jauh yang macet - Pendekatan CTRL + C tidak mungkin dilakukan setelah masuk kembali. Menyimpan opsi nuklir untuk memulai ulang jarak jauh, ini bagus.
MichaelChirico
2
Kenapa tidak pkill jupyter? pkilladalah pgreb, tetapi untuk proses pembunuhan.
rmstmppr
21

Saya pikir jawaban yang diterima sudah usang dan tidak valid lagi.

Anda dapat menghentikan notebook jupyter dari antarmuka web pada item menu file.

masukkan deskripsi gambar di sini

Saat Anda menggerakkan kursor Mouse ke posisi "close and halt", Anda akan melihat penjelasan berikut.

masukkan deskripsi gambar di sini

Dan ketika Anda mengklik "tutup dan hentikan", Anda akan melihat pesan berikut di layar terminal.

masukkan deskripsi gambar di sini

wasabi
sumber
15
Untuk memperjelas, ini menghentikan kernel , proses yang menjalankan kode Python Anda. Itu tidak menghentikan server notebook , yang membuat antarmuka notebook, menangani pemuatan dan penyimpanan file, dll.
Thomas K
10

Langkah pertama adalah menyimpan semua buku catatan yang terbuka. Dan kemudian pikirkan tentang mematikan Notebook Jupyter Anda yang sedang berjalan. Anda dapat menggunakan perintah sederhana ini:

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

Yang juga menggunakan nomor port sebagai argumen dan Anda dapat mematikan notebook jupyter dengan baik.

Misalnya:

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

Selain itu untuk mengetahui instance juypter Anda saat ini berjalan, periksa perintah di bawah ini:

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

Perintah ini berfungsi untuk saya:

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.

Jawaban ini diadaptasi dari sini .

PatriceG
sumber
5

Coba matikan proses pythonw dari Task Manager (jika Windows) jika tidak ada yang berfungsi.

fixxxer
sumber
4
Linux (Ubuntu 14.04)

Seperti yang disebutkan, cobalah untuk mematikan proses notebook ipython dengan benar dengan terlebih dahulu pergi ke tab "berjalan" di sesi browser ipynb / jupyter Anda, dan kemudian periksa terminal terbuka di konsol Anda dan matikan dengan ctrl-c. Yang terakhir harus dihindari jika memungkinkan.

Jika Anda menjalankan ipython notebook listdan terus melihat server ipython yang berjalan di port yang berbeda, catat port mana yang dilayani oleh notebook yang ada. Kemudian matikan port TCP Anda:

fuser -k 'port#'/tcp 

Saya tidak yakin apakah ada risiko lain yang terlibat dengan melakukan ini. Jika demikian, beri tahu saya.

Soham
sumber
2

Lingkungan Hidup


OS saya adalah Ubuntu 16.04 dan jupyter adalah 4.3.0.

metode


Pertama, saya keluar dari jupyter di beranda di browser (tombol keluar ada di kanan atas)

Kedua, ketik Ctrl + Cterminal Anda dan itu menunjukkan:

[I 15: 59: 48.407 NotebookApp] terputus Melayani notebook dari direktori lokal: / home / Nama pengguna 0 kernel aktif

Notebook Jupyter berjalan di: http: // localhost: 8888 /? Token = a572c743dfb73eee28538f9a181bf4d9ad412b19fbb96c82

Matikan server notebook ini (y / [n])?

Langkah terakhir, ketik ydalam 5 detik, dan jika itu menunjukkan:

[C 15: 59: 50.407 NotebookApp] Shutdown dikonfirmasi
[I 15: 59: 50.408 NotebookApp] Mematikan kernel

Selamat! Anda berhasil menutup jupyter Anda.

WY Hsu
sumber
2

Sebenarnya, saya percaya ada cara yang lebih bersih daripada mematikan proses menggunakan kill atau task manager.

Di Dasbor Notebook Jupyter (antarmuka browser yang Anda lihat saat pertama kali meluncurkan 'notebook jupyter'), telusuri ke lokasi file notebook yang telah Anda tutup di browser, tetapi kernelnya mungkin masih berjalan.

File Notebook iPython muncul dengan ikon buku, ditampilkan dalam warna hijau jika kernelnya sedang berjalan, atau abu-abu jika kernel tidak berjalan.

Cukup pilih kotak centang di sebelah file yang sedang berjalan, lalu klik tombol Shutdown yang muncul di atasnya.

Ini akan mematikan kernel yang terkait dengan notebook spesifik tersebut dengan benar.

Andrew Medlin
sumber
0

Di sesi browser, Anda juga dapat membuka Kernellalu mengklik Restart and Clear Output.

Susanna Maier
sumber
0

Saya menyalin menempel dari Dokumentasi Panduan Memulai Cepat Notebook Jupyter / IPython, yang dirilis pada 13 Februari 2018. http://jupyter-notebook-beginner-guide.readthedocs.io/en/latest/execute.html

1.3.3 Menutup notebook: kernel shut down Ketika notebook dibuka, "mesin komputasi" (disebut kernel) secara otomatis dimulai. Menutup tab browser notebook, tidak akan mematikan kernel, sebaliknya kernel akan terus berjalan sampai secara eksplisit dimatikan. Untuk mematikan kernel, buka buku catatan terkait dan klik menu File -> Tutup dan Halt. Sebagai alternatif, Dashboard Notebook memiliki tab bernama Running yang menunjukkan semua notebook yang sedang berjalan (yaitu kernel) dan memungkinkan untuk mematikannya (dengan mengklik tombol Shutdown).

Ringkasan: Pertama-tama tutup dan hentikan notebook yang sedang berjalan.

1.3.2 Matikan Aplikasi Notebook Jupyter Menutup browser (atau tab) tidak akan menutup Aplikasi Notebook Jupyter. Untuk benar-benar mematikannya, Anda perlu menutup terminal terkait. Lebih detailnya, Aplikasi Notebook Jupyter adalah server yang muncul di browser Anda pada alamat default ( http: // localhost: 8888 ). Menutup browser tidak akan mematikan server. Anda dapat membuka kembali alamat sebelumnya dan Aplikasi Notebook Jupyter akan ditampilkan kembali. Anda dapat menjalankan banyak salinan Aplikasi Notebook Jupyter dan mereka akan muncul di alamat yang sama (hanya nomor setelah ":", yang merupakan port, yang akan bertambah untuk setiap salinan baru). Karena dengan satu Aplikasi Notebook Jupyter Anda sudah dapat membuka banyak notebook, kami tidak menyarankan menjalankan beberapa salinan Aplikasi Notebook Jupyter.

Ringkasan: Kedua, keluar dari terminal tempat Anda memecat Jupyter.

Subhrajit Bhattacharya
sumber
0

Langkah 1 - Pada shell cukup lakukan control + z (control + c) Langkah 2 _ tutup browser web

Reihan_amn
sumber