問題概要
Ubuntuのシステムに以下を参考にJupyterHub環境を構築した。便利に使用しているが、Terminalを起動するとShellがShとなってしまい、慣れたBashでないため使いづらく感じていた。
背景情報
JupyterHubを使用するユーザーのログインShellはBashである。JupyterHubを起動するプロセスのユーザーのログインShellをBashにしても、各ユーザーのJupyterHubで起動するTerminalではShとなってしまう。
解決策の概要
JupyterHubを起動するプロセスの環境変数SHELLでどのShellを起動するか振り分けていることがわかったため、systemctlで起動する際に以下のようにserviceファイルに記載する。
jupyterhub.service
[Service]
Environment="SHELL=/bin/bash"
手順
1. JupyterHubを停止
bash
$ sudo systemctl stop jupyterhub.service
2. Serviceファイルを書き換え
3. Serviceファイルをリロード
bash
$ sudo systemctl reload daemon-reload
4. JupyterHubを実行
bash
$ sudo systemctl start jupyterhub.service
結果
各ユーザーでBashが起動しました。
注意事項
すべてのユーザに波及するため、Shを使用したい人にもBashを強制してしまいますが、ログイン後に各自シェルを変えてもらうことに。