ubuntuの拡張ターミナルソフトウェアTerminatorで作業ログを自動保存する

Terminatorとは?

ubuntuの拡張ターミナルソフトウェアで以下の画像のように画面を簡単に分割して作業できます。ターミナルで複数画面を同時に表示できるため大変便利です。(インストール方法、操作方法はググると大量に情報が出てくるので省略)

f:id:ken992:20170826131123p:plain

作業ログの自動保存を試みる

いろいろとググッてみて解ったこと

  • ログの出力にはscriptコマンドを使う
  • OS起動時に自動で保存したい場合は~/.profileに設定する

今回は分割した画面毎にログを出力したいので~/.bashrcにこんな感じで設定してみました。

script  ~/log/term/`whoami`_`date '+%Y%m%d%H%M%S'`

PCを再起動して確認しようと期待したところ・・

デスクトップ画面が表示されない!!

こんな状態になってしまいプチパニック状態!

  • ランチャーも画面上部のツールバーが表示されない
  • GUI操作によるアプリケーション起動ができない
  • デスクトップの壁紙は表示されている

またまた調べて、こちらの方が似た事象だったので参考にして復旧しました。 m12i.hatenablog.com

  1. Ctrl+Alt+F1キー入力⇒コンソール画面に遷移。
  2. 「login:_」という表示されるのでログインユーザ名を入力しEnter(パスワードを聞かれたら適宜入力しEnter)。
  3. DISPLAY=:0.0 gnome-terminalと入力しEnter。
  4. Alt+F7キーを押下⇒デスクトップ画面に復帰し端末ウィンドウが表示される。
  5. /.bashrcを前回の状態に戻して保存する。
  6. sudo shutdown -r nowと入力してEnter⇒OSが再起動する。

原因は無限ループ

ここが参考になりました。 d.hatena.ne.jp

デスクトップ画面表示がおかしかった原因は無限ループらしい

scriptコマンドが起動するシェルも、さらにscriptコマンドを実行し、無限ループになってしまう

ついでにこのブログのscriptの設定をそのままパクって確認してみるもなぜかうまく行かず。。 しょうがないので、これを参考にして自分で作ってようやく解決しました。 ~/.bashrcに以下を追記すると分割画面毎にログを自動保存します。

#ログの自動採取
_LOGDIR="$HOME/log/term/"
_SCRIPT="script"
P_PROC=`ps aux | grep $PPID | grep $_SCRIPT |awk '{ print $11 }'`
if [ "$P_PROC" != "$_SCRIPT" ]; then
  script  `echo $_LOGDIR``whoami`_`date '+%Y%m%d%H%M%S'`_`echo $RANDOM|rev|cut-c 1-3|rev`.log
fi