GNU screenを使用してシリアルコンソールを介して分離モードで単一のコマンドを実行し、その出力をscreenが実行されているホストのログファイルに保存したいと思います。デフォルトでは、次の非対話型に対応します。
screen /dev/ttyUSB0 115200 # connect to serial console "/dev/ttyUSB0" using speed "115200"
ctrl+a H # start logging
some command
ctrl+a k y # quit
現在、シェルから分離モードで単一のコマンドを実行する方法を知っています。
screen -d -m -L some command
# output is saved to screenlog.0
ただし、シリアルコンソールに接続している間に同じことを行う方法を理解できません。
答え1
シリアルポートでは正しくテストできませんが、次のようにすれば動作できるようです。
$ screen -S serial -L -d -m /dev/ttyUSB0
$ screen -S serial -X stuff 'some command\n'
私のバージョンでは、ログファイルの名前であるscreen
パラメータを受け入れます。-L
明らかに、すべてのバージョンに該当するわけではありません。ログファイル名を設定するもう1つの方法は(可能な場合)を使用することです。書き込み前に一定期間出力をバッファリングします。デフォルトのタイムアウトは10秒ですが、screen -S serial -X logfile filename
screen
logfile flush NN
これを少し変えてみて。
-X
実行中のものにコマンドを送信しscreen
、stuff
現在のウィンドウの入力として与えられた文字列を「塗りつぶす」。