2

私は ipython ノートブックで最初のステップを踏んでおり、リモートサーバーに (SSH 経由で) 正常にインストールし、次のコマンドを使用して開始しました:

ipython notebook --ip='*' ---pylab=inline --port=7777

次にhttp://myserver.sth:7777/を確認したところ、ノートブックは問題なく動作していました。次に、サーバーとの SSH 接続を閉じて、ipython をバックグラウンドで実行し続けたいと考えました。これを行うと、 myserver.sth:7777 に接続できなくなりました。SSH でリモート サーバーに再接続すると、ノートブックに再接続できました。screen次に、 ipython を起動screen -S ipyするために使用しようとしCtrl+A,Dました。ノートブックにリモートで接続することはできました。その後、SSH 接続を閉じ、以前に保存したノートブックにアクセスしようとしたときにエラーが発生し、 http://myserver.sth:7777/404 NOT FOUNDのノートブックのリストに表示されませんでした。. 新しいノートブックを作成しようとしましたが、500 Internal Server Error.

ipython notebookまた、 を使用した場合と使用しない場合で実行してみsudoました。

何か案は?

4

1 に答える 1

5

screen を使用するのではなく、おそらく init スクリプトまたはSupervisordに切り替えて、IPython ノートブックを稼働させ続けることができます。

あなたがsupervisordルートに行くと仮定しましょう:

Supervisord をインストールする

パッケージ マネージャーを使用して、supervisord をインストールします。ubuntu の場合、名前はsupervisor.

apt-get install supervisor

pip を使用してスーパーバイザーをインストールすることにした場合は、その init.d スクリプトを自分でセットアップする必要があります。

IPython のスーパーバイザー構成ファイルを作成する

構成ファイルはスーパーバイザーに何をどのように実行するかを指示します。

スーパーバイザーをインストールすると、/etc/supervisor/supervisord.conf. 次の行がファイルに存在する必要があります。

[include]
files = /etc/supervisor/conf.d/*.conf

これらの線が含まれている場合は、体調が良好です。新しい構成ファイルが必要な場所を示すためにのみ示します。構成ファイルは、 のような名前でそこに移動できます/etc/supervisor/conf.d/ipynb.conf

仮想環境でノートブックを実行するipython-notebook-cookbookによって Chef によって生成されたサンプル構成を次に示します。

[program:ipynb]
command=/home/ipynb/.ipyvirt/bin/ipython notebook --profile=cooked
process_name=%(program_name)s
numprocs=1
numprocs_start=0
autostart=true
autorestart=true
startsecs=1
startretries=3
exitcodes=0,2
stopsignal=QUIT
stopwaitsecs=10
user=ipynb
redirect_stderr=false
stdout_logfile=AUTO
stdout_logfile_maxbytes=50MB
stdout_logfile_backups=10
stdout_capture_maxbytes=0
stdout_events_enabled=false
stderr_logfile=AUTO
stderr_logfile_maxbytes=50MB
stderr_logfile_backups=10
stderr_capture_maxbytes=0
stderr_events_enabled=false
environment=HOME="/home/ipynb",SHELL="/bin/bash",USER="ipynb",PATH="/home/ipynb/.ipyvirt/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games",VIRTUAL_ENV="/home/ipynb/.ipyvirt"
directory=/home/ipynb
serverurl=AUTO

上記のスーパーバイザー構成は、IPython ノートブック構成 ( にあります) にも依存しています/home/ipynb/.ipython/profile_cooked/ipython_notebook_config.py。これにより、構成がはるかに簡単になります (パスワードハッシュやその他の多くの構成可能要素もセットアップできるため)。

c = get_config()

# Kernel config

# Make matplotlib plots inline
c.IPKernelApp.pylab = 'inline'

# The IP address the notebook server will listen on.
# If set to '*', will listen on all interfaces.
# c.NotebookApp.ip= '127.0.0.1'
c.NotebookApp.ip='*'

# Port to host on (e.g. 8888, the default)
c.NotebookApp.port = 8888 # If you want it on 80, I recommend iptables rules

# Open browser (probably want False)
c.NotebookApp.open_browser = False

構成ファイルを取得したので、再読み込みして更新します

supervisorctl reread
supervisorctl update

現実

実際には、 Chefのクックブックを使用して、インストールと構成全体を行っていました。ただし、このような小さなもので構成管理を使用するのは、少しやり過ぎです (自動化でこれらを調整している場合を除く)。

最近では、IPython ノートブックに Docker イメージを使用し、JupyterHub または tmpnb を介してオーケストレーションを行っています。

于 2013-11-11T15:12:22.140 に答える