IPython Not Defteri nasıl düzgün kapatılır?


110

IPython Not Defteri nasıl düzgün kapatılır?

Şu anda, tarayıcı sekmelerini kapatıyorum ve ardından Ctrl+Cterminalde kullanıyorum.
Ne yazık ki, ne ne exit()de işaretleme Kill kernel upon exityardımcı olur (çekirdeği öldürürler ama iPython'dan çıkmazlar).


Belirli bir çekirdeğin (belirli bir bağlantı noktasında açık) PID'si ps -axveya ile görülebilir top. Böylece çekirdekler, belirli bir işlemi sonlandırmak için [yönetici ayrıcalığı] ile seçici olarak durdurulabilir: # kill PID-of-ki Bu, çekirdek için hiçbir dahili kapatma prosedürüne izin vermez, ancak zorunlu Ctl-C türü de yoktur .... Bilen var mı? bu jupyter için planlanmışsa?
Dr C

Yanıtlar:


119

Şu anda terminalde Ctrl + C'den daha iyi bir yol yok.

Nasıl açıkça kapatılacağını düşünüyoruz, ancak tek kullanıcılı bir uygulama olan dizüstü bilgisayar arasında, kullanıcının onu durdurmakta serbest olduğu ve yalnızca bir yöneticinin yapabileceği çok kullanıcılı bir sunucu arasında bir miktar gerilim var. durdurmak için. Henüz farklılıkları nasıl ele alacağımızı tam olarak çözmedik.

(Gelecekteki okuyucular için, 0.12 yayımlanan ve 0.13 geliştirme aşamasında olan durum budur.)

Aralık 2017 güncellemesi

IPython Notebook, Jupyter Notebook oldu. Yeni bir sürüm, jupyter notebook stopo sistemde çalışan bir sunucuyu kapatacak bir kabuk komutu ekledi . Varsayılan bağlantı noktası 8888 değilse, bağlantı noktası numarasını komut satırından iletebilirsiniz.

Ayrıca , çalışan sunucuları gösterebilen ve kapatabilen bir masaüstü uygulaması olan nbmanager'ı da kullanabilirsiniz .

Son olarak, eklemeye çalışıyoruz:

  • Belirli bir süre kullanmadığınız takdirde sunucuyu otomatik olarak kapatmak için bir yapılandırma seçeneği.
  • Sunucuyu kapatmak için kullanıcı arayüzünde bir düğme. (Bu kadar uzun sürmesinin biraz çılgınca olduğunu biliyoruz. Kullanıcı arayüzünü değiştirmek tartışmalı.)

1
Belki o zaman, yapılandırma dosyasında ve komut satırında açıkça öldürmeye (menüdeki bir düğme aracılığıyla?) İzin verme seçeneği sunabilir misiniz? Böylece sunucunun her zaman çalışmasını isteyen insanlar doğru yapılandırmayı ayarlayabilir.
gaborous

7
Birkaç yıl oldu, bu durum hiç değişti mi? Ctrl + C, bir iPython Notebook sunucusunu kapatmanın tek kesin yolu mu?
EFC

Hala dizüstü bilgisayar arayüzünden kapatmanın bir yolu yok, ancak dizüstü sunucularını ve çekirdeklerini listeleyen ve öldürebilen bir araç olan nbmanager yazdım .
Thomas K

Bu nedenle jupyter notebook &, Ctrl+ Cbu durum için geçerli olmadığından kullanmanın kötü bir fikir olduğunu varsayıyorum
Naveen Dennis

Bunu denedim, ancak konsola ctrl + C dışında Jupyter Notebook işlemini çalıştıran bir şey yazmanın bir yolu yok. Yeni bir powershell / komut istemi açmayı ve oradan jupyter notebook stop yazmayı denedim, ancak işe yaramadı.
julianhatwell

24

Jupyter'i benim gibi arka planda çalıştırırsan:

jupyter notebook &> /dev/null &

Sonra Jupyter'den tamamen çıkmak için, Ctl-C yerine, bir takma ad komutu verin:

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

Terminalinizi yeniden başlatın. Tüm jupyter örneklerini öldür:

quitjupyter

Not: Yukarıda gösterildiği gibi tek tırnak içinde çift tırnak kullanın. Diğer yol, ifadeyi .bashrc dosyanıza yazmadan önce değerlendirecektir (komutun kendisini 'kill 1430' veya mevcut bir jupyter örneğiyle ilişkilendirilebilecek herhangi bir işlem numarası değil yazmak istiyorsunuz). Elbette istediğiniz herhangi bir takma adı kullanabilirsiniz. Aslında 'qjup' kullanıyorum:

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

Terminalinizi yeniden başlatın. Tüm jupyter örneklerini öldür:

qjup

Tek kill $(pgrep jupyter)başına mükemmel. jupyter notebookÇöken bir uzak terminalden koşuyordum - CTRL + C yaklaşımı tekrar oturum açtıktan sonra imkansız. Uzaktan yeniden başlatma nükleer seçeneğini kaydetmek, bu harika.
MichaelChirico

2
Neden sadece değil pkill jupyter? pkillolduğunu pgreb, ancak süreçleri öldürmek için.
rmstmppr

21

Kabul edilen cevabın modası geçmiş ve artık geçerli olmadığını düşünüyorum.

Jupyter not defterini web arayüzünden dosya menü öğesinden sonlandırabilirsiniz.

görüntü açıklamasını buraya girin

Fare imlecini "kapat ve durdur" üzerine getirdiğinizde, aşağıdaki açıklamayı göreceksiniz.

görüntü açıklamasını buraya girin

Ve "kapat ve durdur" a tıkladığınızda, terminal ekranında aşağıdaki mesajı göreceksiniz.

görüntü açıklamasını buraya girin


15
Açıklığa kavuşturmak için, bu , Python kodunuzu çalıştıran işlem olan çekirdeği durdurur . Dizüstü bilgisayar arabirimlerini oluşturan, dosyaların yüklenmesi ve kaydedilmesiyle ilgilenen dizüstü sunucusunu durdurmaz .
Thomas K

10

İlk adım, tüm açık not defterlerini kaydetmektir. Ve sonra çalışan Jupyter Notebook'unuzu kapatmayı düşünün. Bu basit komutu kullanabilirsiniz:

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

Bağlantı noktası numarasını da bağımsız değişken olarak alır ve jupyter dizüstü bilgisayarı zarif bir şekilde kapatabilirsiniz.

Örneğin:

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

Ek olarak, mevcut juypter örneğinizin çalıştığını bilmek için aşağıdaki komutu kontrol edin:

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

7

Bu komutlar benim için çalıştı:

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.

Bu cevap buradan uyarlanmıştır .


5

Başka hiçbir şey işe yaramazsa, pythonw işlemini Görev Yöneticisinden (Windows ise) öldürmeyi deneyin.


4
Linux (Ubuntu 14.04)

Belirtildiği gibi, önce ipynb / jupyter tarayıcı oturumunuzdaki "çalışan" sekmesine giderek ipython dizüstü bilgisayar işlemlerini düzgün bir şekilde sonlandırmayı deneyin ve ardından konsolunuzdaki açık terminalleri kontrol edin ve ctrl-c ile kapatın. Mümkünse ikincisinden kaçınılmalıdır.

Bir çalıştırırsanız ipython notebook listve ipython sunucularını farklı bağlantı noktalarında çalıştırmayı görmeye devam ederseniz, mevcut dizüstü bilgisayarların hangi bağlantı noktalarına hizmet edildiğini not edin. Ardından TCP bağlantı noktalarınızı kapatın:

fuser -k 'port#'/tcp 

Bunu yapmanın başka riskleri olup olmadığından emin değilim. Öyleyse bana bildirin.


2

çevre


İşletim sistemim Ubuntu 16.04 ve jupyter 4.3.0.

Yöntem


Öncelikle, tarayıcıdaki ana sayfasından jupyter oturumunu kapattım (çıkış düğmesi sağ üstte)

İkinci olarak, Ctrl + Cterminalinizi yazın ve şunu gösterir:

[I 15: 59: 48.407 NotebookApp] kesintiye uğramış Dizüstü bilgisayarların yerel dizinden sunulması: / home / Kullanıcı adı 0 aktif çekirdek

Jupyter Not Defteri şu adreste çalışıyor: http: // localhost: 8888 /? Token = a572c743dfb73eee28538f9a181bf4d9ad412b19fbb96c82

Bu dizüstü bilgisayar sunucusu kapatılsın mı (y / [n])?

Son adım, y5 saniye içinde yazın ve gösteriliyorsa:

[C 15: 59: 50.407 NotebookApp] Kapatma onaylandı
[I 15: 59: 50.408 NotebookApp] Çekirdekler kapatılıyor

Tebrikler! Jüpiterinizi başarıyla kapatıyorsunuz.


2

Aslında, öldürme veya görev yöneticisi kullanarak işlemleri öldürmekten daha temiz bir yol olduğuna inanıyorum.

Jupyter Notebook Dashboard'da ('jupyter notebook'u ilk başlattığınızda gördüğünüz tarayıcı arayüzü), tarayıcıda kapattığınız ancak çekirdekleri hala çalışıyor olabilecek not defteri dosyalarının konumuna göz atın.

iPython Notebook dosyaları, çalışan bir çekirdeğe sahipse yeşil, çekirdek çalışmıyorsa gri olarak gösterilen bir kitap simgesiyle görüntülenir.

Çalışan dosyanın yanındaki onay kutusunu seçin ve ardından üzerinde görünen Kapat düğmesine tıklayın.

Bu, söz konusu dizüstü bilgisayarla ilişkili çekirdeği düzgün bir şekilde kapatacaktır.


0

Tarayıcı oturumunda ayrıca öğesine gidebilir Kernelve ardından öğesini tıklayabilirsiniz Restart and Clear Output.


0

Ben Feb 13, 2018 tarihinde yayımlanan, Jupyter / ipython Notebook Hızlı Başlangıç Kılavuzu Dokümantasyondaki yapıştırarak kopya am http://jupyter-notebook-beginner-guide.readthedocs.io/en/latest/execute.html

1.3.3 Bir dizüstü bilgisayarı kapatın: çekirdek kapatıldı Bir dizüstü bilgisayar açıldığında, "hesaplama motoru" (çekirdek adı verilir) otomatik olarak başlatılır. Dizüstü bilgisayar tarayıcısı sekmesinin kapatılması, çekirdeği kapatmaz, bunun yerine çekirdek, açıkça kapatılana kadar çalışmaya devam eder. Bir çekirdeği kapatmak için ilgili not defterine gidin ve Dosya -> Kapat ve Durdur menüsünü tıklayın. Alternatif olarak, Dizüstü Bilgisayar Panosu'nda çalışan tüm dizüstü bilgisayarları (yani çekirdekler) gösteren ve kapatılmasına izin veren (Kapat düğmesine tıklayarak) Çalışan adlı bir sekme vardır.

Özet: Önce dizüstü bilgisayarları kapatın ve çalışmayı durdurun.

1.3.2 Jupyter Notebook Uygulamasını Kapatın Tarayıcının (veya sekmenin) kapatılması Jupyter Notebook Uygulamasını kapatmayacaktır. Tamamen kapatmak için ilgili terminali kapatmanız gerekir. Daha ayrıntılı olarak, Jupyter Notebook Uygulaması, tarayıcınızda varsayılan bir adreste ( http: // localhost: 8888 ) görünen bir sunucudur . Tarayıcının kapatılması sunucuyu kapatmayacaktır. Önceki adresi yeniden açabilirsiniz ve Jupyter Notebook Uygulaması yeniden görüntülenecektir. Jupyter Notebook Uygulamasının birçok kopyasını çalıştırabilirsiniz ve bunlar benzer bir adreste görünecektir (yalnızca bağlantı noktası olan “:” den sonraki sayı her yeni kopya için artacaktır). Tek bir Jupyter Notebook Uygulaması ile zaten birçok not defteri açabileceğiniz için, Jupyter Notebook Uygulamasının birden çok kopyasını çalıştırmanızı önermiyoruz.

Özet: İkinci olarak, Jupyter'i kovduğunuz terminalden çıkın.


0

Adım 1 - Kabukta sadece control + z (control + c) Adım 2 _ web tarayıcısını kapatın

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.