Làm thế nào để đóng IPython Notebook đúng cách?


110

Làm thế nào để đóng IPython Notebook đúng cách?

Hiện tại, tôi chỉ cần đóng các tab trình duyệt và sau đó sử dụng Ctrl+Ctrong thiết bị đầu cuối.
Thật không may, exit()việc đánh dấu Kill kernel upon exitcũng không giúp ích gì (chúng giết nhân mà chúng không thoát khỏi iPython).


PID của một hạt nhân cụ thể (mở ở một cổng cụ thể) có thể được nhìn thấy với ps -axhoặc top. Do đó, các hạt nhân có thể được dừng một cách chọn lọc với [đặc quyền quản trị] để chấm dứt quá trình cụ thể đó: # kill PID-of-ki Điều này cho phép không có quy trình tắt nội bộ nào đối với hạt nhân, nhưng cũng không bắt buộc loại Ctl-C .... Có ai biết nếu điều này được lên kế hoạch cho jupyter?
Dr C

Câu trả lời:


119

Hiện không có cách nào tốt hơn để làm điều đó ngoài Ctrl + C trong terminal.

Chúng tôi đang suy nghĩ về cách tắt máy rõ ràng, nhưng có một số căng thẳng giữa sổ ghi chép với tư cách là ứng dụng dành cho một người dùng, nơi người dùng có thể tự do dừng nó và với tư cách là máy chủ nhiều người dùng, nơi chỉ quản trị viên mới có thể để ngăn chặn nó. Chúng tôi vẫn chưa tìm ra cách xử lý sự khác biệt.

(Đối với độc giả tương lai, đây là tình huống với 0,12 được phát hành và 0,13 đang phát triển.)

Cập nhật tháng 12 năm 2017

IPython Notebook đã trở thành Jupyter Notebook. Phiên bản gần đây đã thêm jupyter notebook stoplệnh shell sẽ tắt máy chủ chạy trên hệ thống đó. Bạn có thể chuyển số cổng tại dòng lệnh nếu đó không phải là cổng mặc định 8888.

Bạn cũng có thể sử dụng nbmanager , một ứng dụng dành cho máy tính để bàn có thể hiển thị các máy chủ đang chạy và tắt chúng.

Cuối cùng, chúng tôi đang làm việc để thêm:

  • Một tùy chọn cấu hình để tự động tắt máy chủ nếu bạn không sử dụng nó trong một thời gian nhất định.
  • Một nút trong giao diện người dùng để tắt máy chủ. (Chúng tôi biết hơi điên rồ khi phải mất nhiều thời gian như vậy. Việc thay đổi giao diện người dùng đang gây tranh cãi.)

1
Có thể sau đó chỉ cung cấp một tùy chọn để cho phép tiêu diệt rõ ràng (thông qua một nút trong menu?) Hoặc không trong tệp cấu hình và dòng lệnh? Vì vậy, những người muốn máy chủ luôn chạy có thể chỉ cần thiết lập đúng cấu hình.
hào nhoáng

7
Đã mấy năm rồi, tình hình này có thay đổi gì không? Ctrl + C vẫn là cách chắc chắn duy nhất để tắt máy chủ iPython Notebook?
EFC

Vẫn không có cách nào để tắt nó từ bên trong giao diện người dùng máy tính xách tay, nhưng tôi đã viết nbmanager , một công cụ có thể liệt kê và tiêu diệt các máy chủ và hạt nhân máy tính xách tay.
Thomas K

Vì vậy, tôi giả sử dụng jupyter notebook &là một ý tưởng tồi kể từ Ctrl+ Ckhông áp dụng cho trường hợp này
Naveen Dennis

Tôi đã thử điều này, nhưng không có cách nào để nhập bất kỳ thứ gì vào bảng điều khiển đang chạy quy trình Jupyter Notebook ngoài ctrl + C. Tôi đã thử mở một dấu nhắc lệnh / quyền hạn mới và nhập sổ ghi chép jupyter từ đó, nhưng nó không hoạt động.
julianhatwell 19/03/18

24

Nếu bạn chạy jupyter ở chế độ nền như tôi:

jupyter notebook &> /dev/null &

Sau đó, để thoát hoàn toàn jupyter, thay vì Ctl-C, hãy tạo một lệnh bí danh:

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

Khởi động lại thiết bị đầu cuối của bạn. Giết tất cả các phiên bản jupyter:

quitjupyter

Lưu ý: sử dụng dấu ngoặc kép bên trong dấu nháy đơn như hình trên. Theo cách khác, sẽ đánh giá biểu thức trước khi ghi nó vào .bashrc của bạn (bạn muốn viết chính lệnh không phải 'kill 1430' hoặc bất kỳ số tiến trình nào có thể được liên kết với phiên bản jupyter hiện tại). Tất nhiên bạn có thể sử dụng bất kỳ bí danh nào bạn muốn. Tôi thực sự sử dụng 'qjup':

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

Khởi động lại thiết bị đầu cuối của bạn. Giết tất cả các phiên bản jupyter:

qjup

Bản kill $(pgrep jupyter)thân nó là tuyệt vời. Tôi đang chạy jupyter notebooktừ một thiết bị đầu cuối từ xa bị lỗi - sau đó không thể tiếp cận CTRL + C khi đăng nhập lại. Lưu tùy chọn hạt nhân là khởi động lại từ xa, điều này thật tuyệt.
MichaelChirico

2
Tại sao không chỉ pkill jupyter? pkillpgreb, nhưng đối với các quá trình giết chết.
rmstmppr

21

Tôi nghĩ rằng câu trả lời được chấp nhận đã lỗi thời và không còn giá trị nữa.

Bạn có thể kết thúc sổ ghi chép jupyter khỏi giao diện web trên mục tệp menü.

nhập mô tả hình ảnh ở đây

Khi bạn di chuyển con trỏ chuột trên "đóng và dừng", bạn sẽ thấy giải thích sau.

nhập mô tả hình ảnh ở đây

Và khi bạn nhấp vào "đóng và dừng", bạn sẽ thấy thông báo sau trên màn hình thiết bị đầu cuối.

nhập mô tả hình ảnh ở đây


15
Để làm rõ, điều này sẽ dừng hạt nhân , quá trình chạy mã Python của bạn. Nó không chỉ dừng lại các máy chủ máy tính xách tay , mà làm cho giao diện máy tính xách tay, thỏa thuận với tải và các tập tin tiết kiệm vv
Thomas K

10

Bước đầu tiên là lưu tất cả sổ ghi chép đang mở. Và sau đó hãy nghĩ đến việc tắt Máy tính xách tay Jupyter đang chạy của bạn. Bạn có thể sử dụng lệnh đơn giản này:

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

Điều này cũng lấy số cổng làm đối số và bạn có thể tắt sổ ghi chép jupyter một cách duyên dáng.

Ví dụ:

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

Ngoài ra để biết phiên bản juypter hiện tại của bạn đang chạy, hãy kiểm tra lệnh bên dưới:

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

7

Các lệnh này phù hợp với tôi:

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.

Câu trả lời này đã được điều chỉnh từ đây .


5

Hãy thử giết quá trình pythonw từ Trình quản lý tác vụ (nếu Windows) nếu không có gì khác hoạt động.


4
Linux (Ubuntu 14.04)

Như đã đề cập, hãy cố gắng diệt các quy trình sổ ghi chép ipython đúng cách bằng cách trước tiên đi tới tab "đang chạy" trong phiên trình duyệt ipynb / jupyter của bạn, sau đó kiểm tra các thiết bị đầu cuối đang mở trên bảng điều khiển của bạn và tắt bằng ctrl-c. Sau này nên tránh nếu có thể.

Nếu bạn chạy một ipython notebook listvà tiếp tục thấy các máy chủ ipython đang chạy ở các cổng khác nhau, hãy ghi chú lại cổng nào mà các máy tính xách tay hiện có đang được phục vụ. Sau đó tắt các cổng TCP của bạn:

fuser -k 'port#'/tcp 

Tôi không chắc liệu có những rủi ro khác liên quan đến việc này hay không. Nếu vậy, hãy cho tôi biết.


2

Môi trường


Hệ điều hành của tôi là Ubuntu 16.04 và jupyter là 4.3.0.

phương pháp


Đầu tiên, tôi đã đăng xuất jupyter tại trang chủ của nó trên trình duyệt (nút đăng xuất ở trên cùng bên phải)

Thứ hai, nhập vào Ctrl + Cthiết bị đầu cuối của bạn và nó hiển thị:

[I 15: 59: 48.407 NotebookApp] bị gián đoạn Cung cấp sổ ghi chép từ thư mục cục bộ: / home / Tên người dùng 0 hạt nhân hoạt động

Máy tính xách tay Jupyter đang chạy tại: http: // localhost: 8888 /? Token = a572c743dfb73eee28538f9a181bf4d9ad412b19fbb96c82

Tắt máy chủ sổ tay này (y / [n])?

Bước cuối cùng, nhập trong yvòng 5 giây và nếu nó hiển thị:

[C 15: 59: 50.407 NotebookApp] Đã xác nhận tắt máy
[I 15: 59: 50.408 NotebookApp] Đang tắt kernel

Chúc mừng! Bạn đóng jupyter của bạn thành công.


2

Trên thực tế, tôi tin rằng có một cách rõ ràng hơn là giết (các) quy trình bằng cách sử dụng kill hoặc task manager.

Trong Bảng điều khiển sổ ghi chép Jupyter (giao diện trình duyệt bạn thấy khi khởi chạy 'sổ ghi chép jupyter' lần đầu tiên), hãy duyệt đến vị trí của tệp sổ ghi chép bạn đã đóng trong trình duyệt, nhưng các nhân có thể vẫn đang chạy.

Các tệp iPython Notebook xuất hiện với biểu tượng cuốn sách, được hiển thị bằng màu xanh lục nếu nó có nhân đang chạy hoặc màu xám nếu nhân không chạy.

Chỉ cần chọn hộp đánh dấu bên cạnh tệp đang chạy, sau đó nhấp vào nút Tắt máy xuất hiện phía trên tệp.

Điều này sẽ tắt đúng cách hạt nhân được liên kết với sổ ghi chép cụ thể đó.


0

Trong phiên trình duyệt, bạn cũng có thể truy cập Kernelvà sau đó nhấp vào Restart and Clear Output.


0

Tôi đang sao chép dán từ Tài liệu Hướng dẫn Bắt đầu Nhanh Máy tính xách tay Jupyter / IPython, được phát hành vào ngày 13 tháng 2 năm 2018. http://jupyter-notebook-beginner-guide.readthedocs.io/en/latest/execute.html

1.3.3 Đóng sổ ghi chép: tắt hạt nhân Khi một sổ ghi chép được mở, “bộ máy tính toán” của nó (được gọi là hạt nhân) sẽ tự động khởi động. Đóng tab trình duyệt sổ ghi chép sẽ không tắt hạt nhân, thay vào đó hạt nhân sẽ tiếp tục chạy cho đến khi bị tắt hoàn toàn. Để tắt hạt nhân, hãy chuyển đến sổ ghi chép được liên kết và nhấp vào menu Tệp -> Đóng và Tạm dừng. Ngoài ra, Bảng điều khiển Notebook có một tab tên Running hiển thị tất cả các sổ ghi chép đang chạy (tức là hạt nhân) và cho phép tắt chúng (bằng cách nhấp vào nút Tắt máy).

Tóm tắt: Đầu tiên hãy đóng và tạm dừng các sổ ghi chép đang chạy.

1.3.2 Tắt Ứng dụng Máy tính xách tay Jupyter Đóng trình duyệt (hoặc tab) sẽ không đóng Ứng dụng Máy tính xách tay Jupyter. Để tắt hoàn toàn, bạn cần đóng thiết bị đầu cuối liên quan. Chi tiết hơn, Ứng dụng Máy tính xách tay Jupyter là một máy chủ xuất hiện trong trình duyệt của bạn tại địa chỉ mặc định ( http: // localhost: 8888 ). Đóng trình duyệt sẽ không tắt máy chủ. Bạn có thể mở lại địa chỉ trước đó và Ứng dụng Máy tính xách tay Jupyter sẽ được hiển thị lại. Bạn có thể chạy nhiều bản sao của Ứng dụng Máy tính xách tay Jupyter và chúng sẽ hiển thị tại một địa chỉ tương tự (chỉ số sau “:”, là cổng, sẽ tăng lên cho mỗi bản sao mới). Vì chỉ với một Ứng dụng sổ tay Jupyter, bạn đã có thể mở nhiều sổ ghi chép, chúng tôi khuyên bạn không nên chạy nhiều bản sao của Ứng dụng sổ tay Jupyter.

Tóm tắt: Thứ hai, thoát khỏi thiết bị đầu cuối mà bạn đã sa thải Jupyter.


0

Bước 1 - Trên trình bao chỉ cần thực hiện điều khiển + z (điều khiển + c) Bước 2 _ đóng trình duyệt web

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.