簡體   English   中英

長期運行的 Jupyter 筆記本/實驗室?

[英]Long running Jupyter notebook/lab?

我讓 Jupyter 在 ec2 實例上的 tmux 會話中運行。 我有很長時間運行的單元格,但是當我關閉瀏覽器或筆記本電腦蓋時,筆記本電腦不再寫入輸出單元格(並且可能會導致 python 內核崩潰)。

這是我在遠程實例上啟動實驗室的方式:

jupyter lab --ip=0.0.0.0 --port=5002 --no-browser --allow-root

我正在尋找一種解決方案,可以無限期地運行筆記本而不會丟失數據,也不必讓我的本地計算機保持開機狀態。

  • 我不想使用 VNC 或 X-windows 轉發(太慢)
  • 我不想將我的代碼重寫為 python 腳本(只需要在 jupyter 實驗室中工作)

必須有一個解決方案!

更新:

下面的“nohup”解決方案不起作用:

在此處輸入圖片說明

運行此單元並關閉瀏覽器后,重新打開時沒有輸出:

在此處輸入圖片說明

編輯(澄清后):

在關閉瀏覽器或筆記本電腦后,您可以使用一些 Jupyter 魔法繼續運行單元格,然后在返回后打印輸出。 這是如何做到的:

%%capture stored_output

import time
time.sleep(30)
print("Hi")

返回后,運行以下命令:

stored_output.show()
# Hi

原來的:

您需要使用 nohup 啟動筆記本。

nohup jupyter notebook &

添加 '&' 只需要返回 shell。 筆記本將在后台運行,當您關閉 SSH 連接時,它的進程 ID 不會被終止。

我不認為您想要的是可能的,因為當您的筆記本電腦在合上蓋子后進入睡眠模式時,瀏覽器中的筆記本客戶端將停止與服務器交互,即使您設法保持 SSH 連接處於活動狀態。 您可以更改操作系統設置以防止系統在蓋子關閉時進入休眠狀態,但這與保持機器開啟並使用電池沒有什么不同。

我使用的方法是:

  • 在 screen 或 tmux 中啟動遠程 Jupyter 服務器,以便服務器進程和 Python 內核在 SSH 連接斷開時保持運行。
  • 以這樣一種方式編寫長時間運行的單元,即您的輸出不會被寫入stdout或會被記錄到服務器中的文件中。

當您喚醒機器並重新啟動 SSH 連接時,該單元將完成運行,您可以在另一個單元中檢查結果或直接查看您的日志。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM