#狙い
teratermやPuttyで接続するときのようにCygwinやUbuntu on Windowsでも
操作ログをエビデンスとして残したいなと思ったのでscriptコマンドを.bashrcに組み込んでみた
(自分の管理用なので制御コードの除外は割愛)
#はまりどころ
scriptコマンドを適当に.bashrcに組み込んだら
挙動を全然理解していなかったので.bashrcがひたすら読み込まれ多重起動地獄
#解決策
##最初に起動する親プロセスの場合のみscriptコマンド実行する
Cygwinの場合は**/usr/bin/mintty**
Ubuntu on Windowsの場合は**/init**
##ps auxの結果を目的に一致するようにごちゃごちゃやって抽出
他のscriptコマンドでログ記録している方たちの情報を参照しつつ環境に合わせる
Cygwinのps結果は表示が少なかったりしたので合わせる
grep結果が複数該当するのでheadとかtailで1行抽出
sortで順番を変えたりする
#ソース
##Cygwin
P_PROC=`ps aux | grep "${PPID}" | awk '{print $8}' | sort | tail -1`
CMD_MINTTY=/usr/bin/mintty
if [ ${P_PROC} = ${CMD_MINTTY} ]; then
script ${HOME}/log/$(date +%Y%m%d_%H%M%S)_$(whoami).log
fi
##Ubuntu on Windows
P_PROC=`ps aux | grep "${PPID}" | awk '{print $11}' | head -1`
CMD_INIT=/init
if [ ${P_PROC} = ${CMD_INIT} ]; then
script ${HOME}/log/$(date +%Y%M%S)_$(whoami).log
fi