chsh で zsh をデフォルトシェルに変更しようとしたが変更されないとき。
tmux 利用時に chsh してshellを変更しようとした場合、すぐに反映されなかったので調べた。
結論から言うと、chshする前の tmux のプロセスが生きていたため、このプロセスがshell を握っていたと思われる。
tmux のプロセスを全部kill して解決した。
% tmux % echo $SHELL /bin/bash % cat /etc/shells # List of acceptable shells for chpass(1). # Ftpd will not allow users to connect who are not using # one of these shells. /bin/bash /bin/csh /bin/ksh /bin/sh /bin/tcsh /bin/zsh /usr/local/bin/zsh # 追加 % chsh -s /usr/local/bin/zsh #本来ならここで変更される % echo $SHELL /bin/bash # 変更されてない % pkill tmux % echo $SHELL /usr/local/bin/zsh #変更された