はじめに
ChromebookでLinuxモードを有効にした場合、Linux内の /usr/share/applications/ にデスクトップエントリファイル(.desktop)を保存すれば、ホスト側(ChromeOS)のランチャーにLinuxアプリを表示できるように Garcon daemon が動作しています。
ところが、Anaconda3 の jupyter-notebook のデスクトップエントリ(notebook.desktop)を登録して、ランチャーから実行するとシェルフに表示されたアイコンが永遠とローディング状態となり一度本体をシャットダウンしないと2回目の起動ができないという問題が発生しました。
実行環境
機種 | Chromebook 3100 2-in-1 |
CPU | Intel(R) Celeron(R) N4020 CPU @ 1.1 GHz x 2 |
MemTotal | 3,897,296 kB |
ChromeOS | Google Chrome OS ver.93.0.4577.107(64 bit) |
LinuxOS | Debian GNU/Linux 10.11 |
Anaconda3 | ver. 2021.05-Linux-x86_64 |
対処方法
今回は xfce4-terminal を経由することで問題を回避しました。Anaconda3 を /opt 以下にインストールした場合の notebook.desktop の修正例を下に示します。これをデスクトップエントリとして登録すると、ランチャーから xfce4-terminal を立ち上げると同時に jupyter-notebook を起動します。Notebook を終了すれば xfce4-terminal も自動的に終了し、逆に xfce4-terminal から Notebook を終了することも可能です。どちらにしても正常に起動・終了するようになりました。
なお、xfce4-terminal のデスクトップエントリが存在すると正常に動作しないため、 /usr/local/share/applications/xfce4-terminal.desktop を削除するか末尾に hidden=true
を追記して更新する必要があります。
[Desktop Entry]
Version=1.0
Name=Jupyter Notebook
Comment=The Jupyter HTML Notebook.
- Exec=/opt/anaconda3/bin/jupyter-notebook
+ Exec=xfce4-terminal -e "/opt/anaconda3/bin/jupyter-notebook"
Icon=/usr/share/icons/hicolor/256x256/apps/notebook.png
Terminal=false
Type=Application
ちなみに、Linuxモードの標準ターミナルから新規ターミナルを立ち上げると同時に jupyter-notebook を起動するという方法でもローディングが永遠と続くため、標準ターミナルとは別の xfce4-terminal のようなGUIターミナルは必要と考えられます。
おまけ
Anaconda3のインストールから jupyter-notebook のデスクトップエントリの登録までをスクリプトにしてみたので参考にして下さい。
#更新・インストール
sudo apt update -y
sudo apt upgrade -y
sudo apt install -y wget xfce4-terminal
#
#install Anaconda3
ANACONDA_URL="https://repo.anaconda.com/archive/Anaconda3-2021.05-Linux-x86_64.sh"
wget ${ANACONDA_URL} -O Anaconda.sh
sh Anaconda.sh -b -p /opt/anaconda3
rm Anaconda.sh
#
#PATHを通す
echo '
# set PATH of Anaconda3
if [ -d "/opt/anaconda3/bin" ] ; then
export "PATH=${PATH}:/opt/anaconda3/bin"
fi' >> .profile
#
#JupyterNotebookのデスクトップエントリの登録
NOTEBOOK_ICONURL="https://icon-icons.com/downloadimage.php?id=161280&root=2667/PNG/256/&file=jupyter_app_icon_161280.png"
sudo wget ${NOTEBOOK_ICONURL} -O /usr/share/icons/hicolor/256x256/apps/notebook.png
echo "\
[Desktop Entry]
Version=1.0
Name=Jupyter Notebook
Comment=The Jupyter HTML Notebook.
Exec=xfce4-terminal -e \"/opt/anaconda3/bin/jupyter-notebook\"
Icon=/usr/share/icons/hicolor/256x256/apps/notebook.png
Terminal=false
Type=Application" | \
sudo tee /usr/share/applications/notebook.desktop
#
#xfce4-terminalのデスクトップエントリの無効化
echo "Hidden=true" | sudo tee -a /usr/share/applications/xfce4-terminal.desktop
#
#デスクトップエントリの更新
sudo update-desktop-database
#
#終了
echo "
=-------------=
| F I N I S H |
=-------------="
rm setupAnaconda.sh