はじめに
業務で初めて Angular に触れる機会があり、App Service on Linux で動かすにあたってちょっと苦戦したので、その辺りをまとめようと思ったのですが、 結構めんどくさい問題にあたってしまい、いまだ解決してないので、即席エントリーに変更。
App Service on Linux での SSH ログイン時の話です。
コマンド履歴を保存してない
Bash のコマンド履歴って、logout 時に ~/.bash_history
に書き出されるんですね。知りませんでした。
一方で、App Service on Linux の場合、あまり logout って操作をしないし、そもそも再起動すると、ホーム ディレクトリ (/root
) が毎回初期化されるので、ひと工夫しないとコマンド履歴を保持しておくことができません。
やってみたひと工夫を紹介
永続される /home
ディレクトリに .bash_history
を作って、/root/.bash_histry
からシンボリック リンクをはってみました。
あと環境変数 PROMPT_COMMAND
を使って、コマンド実行のたびに履歴の Save と Reload をすることで、logout しなくても .bash_history
が更新できるようしています。
こんな感じで。
#!/bin/sh ls /home/.bash_history &>/dev/null || touch /home/.bash_history ln -s /home/.bash_history /root/.bash_history echo 'export PROMPT_COMMAND="history -a && history -c && history -r"' >> /root/.bashrc
ただこの設定も再起動するとクリアされます。
スタートアップ コマンド
なので、スタートアップ コマンドを使います。依存症です。
# App Service on Linux をいじる分には便利なんですよ
上のスクリプトの最後に npm start
とかの web アプリケーション起動コマンドを追記して完成です。
#!/bin/sh ls /home/.bash_history &>/dev/null || touch /home/.bash_history ln -s /home/.bash_history /root/.bash_history echo 'export PROMPT_COMMAND="history -a && history -c && history -r"' >> /root/.bashrc # actual startup command npm start
これでコマンド履歴が記録される設定が、きちんと永続化されるはずです。
お試しあれ。
ではでは。