Я пытаюсь автоматически запустить сервер jupyter при загрузке. (ec2, amazon linux)
Я получил сервер jupyter, работающий и правильно загружающий все ядра conda.
и я попытался запустить jupyter при загрузке. (пробовал rc.local, systemd, crontab и все не загружает ядра conda и загружает только базовые ядра python2 и python3)
Я проследил это до nb_conda_kernels, не обнаружив возможности вызвать conda при загрузке, как показано ниже:
Oct 30 01:07:38 ip-172-31-17-102 rc.local: [E 01:07:38.816 NotebookApp] [nb_conda_kernels] couldn't call conda:
Oct 30 01:07:38 ip-172-31-17-102 rc.local: [Errno 2] No such file or directory: 'conda': 'conda'
Oct 30 01:07:38 ip-172-31-17-102 rc.local: [I 01:07:38.816 NotebookApp] [nb_conda_kernels] enabled, 0 kernels found
Oct 30 01:07:39 ip-172-31-17-102 rc.local: [I 01:07:39.645 NotebookApp] Loading IPython parallel extension
Oct 30 01:07:39 ip-172-31-17-102 rc.local: [I 01:07:39.701 NotebookApp] JupyterLab extension loaded from /home/ec2-user/anaconda3/lib/python3.7/site-packages/jupyterlab
Oct 30 01:07:39 ip-172-31-17-102 rc.local: [I 01:07:39.702 NotebookApp] JupyterLab application directory is /home/ec2-user/anaconda3/share/jupyter/lab
Oct 30 01:07:40 ip-172-31-17-102 rc.local: [I 01:07:40.061 NotebookApp] [nb_conda] enabled
Oct 30 01:07:40 ip-172-31-17-102 rc.local: [I 01:07:40.061 NotebookApp] Serving notebooks from local directory: /home/ec2-user/browse
Oct 30 01:07:40 ip-172-31-17-102 rc.local: [I 01:07:40.061 NotebookApp] The Jupyter Notebook is running at:
Oct 30 01:07:40 ip-172-31-17-102 rc.local: [I 01:07:40.061 NotebookApp] http://172.31.17.102:8888/
Oct 30 01:07:40 ip-172-31-17-102 rc.local: [I 01:07:40.061 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
Самое странное, что когда я убиваю работающий сервер с помощью sudo ss --tulpn | grep 8888 (чтобы найти pid для ноутбука jupyter, который прослушивает порт 8888) и sudo kill -9 {pid} (чтобы убить процесс. проверил, что я его успешно убил), и я перезапускаю сервер с помощью той же команды, что и при загрузке , то jupyter успешно загружает ядра conda, как показано ниже:
[I 01:12:51.369 NotebookApp] [nb_conda_kernels] enabled, 22 kernels found
[I 01:12:51.612 NotebookApp] Loading IPython parallel extension
[I 01:12:51.641 NotebookApp] JupyterLab extension loaded from /home/ec2-user/anaconda3/lib/python3.7/site-packages/jupyterlab
[I 01:12:51.641 NotebookApp] JupyterLab application directory is /home/ec2-user/anaconda3/share/jupyter/lab
[I 01:12:51.791 NotebookApp] [nb_conda] enabled
[I 01:12:51.792 NotebookApp] Serving notebooks from local directory: /home/ec2-user/browse
[I 01:12:51.792 NotebookApp] The Jupyter Notebook is running at:
[I 01:12:51.792 NotebookApp] http://172.31.17.102:8888/
[I 01:12:51.792 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
Я видел один конкретный вопрос об этой проблеме по stackoverflow. (Ноутбук Jupyter не может найти ядро при запуске через /etc/rc.local), но проблема здесь в том, что когда я набираю jupyter kernelspec list, я получаю только python3 и python2, даже если jupyter уже успешно загрузил ядра conda.
python3 /home/ec2-user/anaconda3/share/jupyter/kernels/python3
python2 /usr/share/jupyter/kernels/python2
Кроме того, я попытался изменить Environmentpecmanager в файле конфигурации jupyter, чтобы увидеть, решает ли он проблему, но этого не произошло. (тот же журнал ошибок, не удалось вызвать conda)
в чем проблема?