問題
chsh
でfishを設定する。又は、.bashrc内でexec fish
で呼ぶとWelcome to fish, the friendly interactive shell
が表示された後、プロンプトの表示まで辿り着きません。
.bashrc内でexec fish -d 3
以上で確認すると、何かを試し続けている様子が見られます。
環境
- Ubuntu 18.04
- fish 2.7.1
対処
fishのPIDが2の時に問題があるようなので、それを回避します。1
既にログインシェルをfishにしてしまった場合は、ubuntuを2つ起動すると片方はプロンプトが表示されるので、そちらで作業してください。
シェルスクリプトの作成
sudo vim /bin/fish-starter
等でシェルスクリプトを作成。
#!/bin/bash
fish "$@"
exit $?
実行権限を付与
sudo chmod 755 /bin/fish-starter
shellsに追記
fish-starterをログインシェルにするために/etc/shellsに下記を追記します。
/bin/fish-starter
ログインシェルの変更
chsh -s /bin/fish-starter
起動確認
ウィンドウを閉じてubuntuを起動すると無事プロンプトが表示されると思います。
ps
で確認するとPIDが3になっています。
$ps
PID TTY TIME CMD
2 tty1 00:00:00 fish-starter
3 tty1 00:00:00 fish
13 tty1 00:00:00 ps
終わりに
このバグはmasterブランチでは既に修正されています。2
fishのバージョンが上がるのを待ちましょう。
issue
Bracketed paste mode causes fish to hang on WSL if started as PID=2 #4582