2016-01-27 6 views
6

私は、AWSインスタンス(Redhat Linuxサーバ)上のjupyterノートブックサーバを起動し、https経由で接続します。 configファイルでは、これはポート9999にあるはずです。しかし、Ctrl-Cでプロセスを停止して再起動すると、ポートは以下のように解放されていません。ノートブックサーバーが停止した後に保持されているポートを解放するにはどうすればよいですか?

[[email protected] notebook]$ [I 08:39:27.901 NotebookApp] The port 9999 is already in use, trying another random port. 
[I 08:39:27.901 NotebookApp] The port 10000 is already in use, trying another random port. 
[I 08:39:27.902 NotebookApp] The port 10001 is already in use, trying another random port. 
[I 08:39:27.905 NotebookApp] Serving notebooks from local directory: /home/user/docs/notebook 
[I 08:39:27.905 NotebookApp] 0 active kernels 
[I 08:39:27.905 NotebookApp] The Jupyter Notebook is running at: https://[all ip addresses on your system]:10002/ 
[I 08:39:27.905 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation). 

これらの「ランダムポート」はあまりランダムではありません。

+0

プログラマーコミュニティでは、ipython/jupyterノートブックは確かにツールですが、 。どのように移行するのですか? –

+1

停止コマンドが実際に実際にサービスを停止していることを確認していますか?これをチェックするには、rawstatでstopとnetstat -tlnpを実行できますか? stopがpidファイルを削除するだけで、実際にはサービスを停止できない可能性があります。 – Tom

+0

いいえ、サービスを停止していないようです。だから 'netstat -tlnp'の後に' kill [pid] 'を使うことができます。ありがとう! –

答えて

3

サービスの停止コマンドはエラーを返さず、プロセスのpidファイルを削除することもありますが、実際にはプロセス自体を終了しないことがあります。

あなたは、手動でプロセスを強制終了、または修正することができますいずれかに述べたようにプロセスがまだ停止コマンドを実行して、実行した後、

ps aux | grep -i notebook 

または

netstat -tlnp | grep <portNumber> 

のどちらかであるかどうかをチェックすることができます停止スクリプト(通常は/etc/init.d/serviceName+d)。プロセスが強制終了されない理由は、コマンドを実行しているユーザーの所有するアクセス権にリンクされていることが多い(常にそうではない)

+0

だから、単に 'jupyter notebook&'ではなく 'sudo jupyter notebook&'を使ってサーバを起動するべきですか? –

+0

いいえ、それはできません。それは私に 'sudo:jupyter:command not found'を与えます。 –

+0

通常、あなたはサービスにユーザを捧げることを好みます。たとえばApache、mysqlなどのサービスの場合、これらのサービスを実行するために必要な最低限の権限しか持たないシステムユーザがこれらのサービスを実行するようになります。しかし、セキュリティが大きな問題ではない場合は、単にあなたのために働いていることをしてください。あなたのシステム設定/ユーザ/権利/パス/ etcやjupyterサービスのどちらも知らないので、あなたがsudoをやるべきかどうかを私が言うのは難しいです:) – Tom

関連する問題