仮想端末から出力の連続ストリームを取得したいのですが、それは可能ですか? 不可能な場合、なぜtail -f
ここでは機能しないのですか?
答え1
このtail
コマンドは、通常のファイルで動作するように設計されており、ファイルの長さを読み取り、末尾までシークし、長さの増加を監視できます。パイプまたは文字特殊ファイルでは使用できません。これらのファイルでは長さが意味をなさないことが多く、シークできません (動作しようとする可能性があります)。
/dev/vcs 文字特殊は、仮想コンソールのスクリーンダンプを出力しますが、一定のデータストリームは出力しません。したがって、cat
も も役に立ちませんtail
。単にスクリーンダンプ (改行なし) を出力し、その後に EOF を出力します。
これを出力ストリームに変換するのは非常に困難です。なぜなら、ある時点のビューしか取得できず、そこからコンソールに送信された文字ストリームが何であるかを判断できないためです。