2017-03-11 9 views
0

開かれたすべての端末セッションが私の履歴から何かを簡単に再生できるように、自動的にasciinemaによって記録されるように環境を設定しようとしています。すべての端末セッションを記録し、閉じたウィンドウの後に正しく終了する方法

私はzshシェルを使用して、私は.zshrcでこれを実行します。

if [ "$ASCIINEMA_REC" != "1" ]; then 
    local out="rec.json" 
    local loc="$HOME/.asciinema" 

    if [ -d "${loc}" ]; then 
     out="${loc}`pwd`/rec_`date +'%Y-%b-%d_%H-%M-%S'`_pts-`basename $TTY`.json" 
     mkdir -p "`dirname ${out}`" 
    fi 

    asciinema rec -q -w 1 ${out}; 
fi 

私は(Xを使用して)ターミナルウィンドウを閉じるときに問題があるが。出力が正しく閉じられず、空になります。また、zshシェルを2回初期化するので、初期化に時間がかかります。

+0

それはまだ正式ではないので、これはわずかアップデートです:asciinemaは、新たなFileFormatを持つことになりますし、セッション終了時に代わりにリアルタイムで保存しません。 https://github.com/asciinema/asciinema/pull/236 – SeriousM

答えて

1

端末が閉じられているときにクリーンアップコマンドを処理できるように、私はtrapSIGHUPEXITを試してみます。

trap 'command' SIGHUP EXIT 

だから、あなたの場合には、おそらくあなたは正しくasciinemaによって擬似端末RANを閉じることを確認すること。

多分:

trap 'exit 0;' SIGHUP EXIT # Should exit the current terminal session, hopefully the asciinema one! 

参考:Which signals are sent when closing a terminal

関連する問題