ncursesからSTDOUTノイズを分離する

ncursesからSTDOUTノイズを分離する

ncursesARMボードでGUIアプリケーションを実行しようとしています。ttyAMA0シリアルコンソールポートを使用して実行しています。ただし、ncursesプログラムを実行すると、バックグラウンドで実行されている他のプロセスがデバッグメッセージSTDOUT(qDebug、qWarningなど)をGUIレイアウトに印刷してノイズを発生させます。問題は、すべてのプロセスが同じコンソールデバイスを使用しているためだと思います。

STDOUTそれでは、GUIで他のプロセスを見ることができないように、この問題に対するコマンドラインまたはプログラミングソリューションはありますかncurses

私はGNUを試しましたが、screenあまり役に立ちませんでした。画面セッション内でも画面を汚染するこれらのプロセスの出力が表示されます。

PS:私はすでに試しましたデータベースソリューションはうまくいき、うまくいきます。しかし、代替ソリューションが欲しい

ベストアンサー1

私はあなたが望むことが可能だとは思わない。次のタイトルのスーパーユーザースレッドを参照してください。端末からプロセスを完全に分離するには?

基本的に3つのオプションがあると思います。

オプション1

次のように実行されるように汚染されたターミナルスクリプトを実行します。

nohup somescript &> /dev/null &

そのSTDOUTとSTDINは/ dev / nullで実行する必要があり、バックグラウンドに置いて端末を閉じる必要がある場合は、端末信号から切断する必要があります。

オプション#2

そのようなものを使用してくださいscreen。コメントに@StephaneChazelasのおかげでscreenあなたのアーキテクチャのためのDebianパッケージ

オプション#3

端末のSTDOUTを汚染するプロセスを一時的に停止することに興味がない場合は、次の設定を使用できますstty tostop。これにより、これらのプロセスがSTDOUTを端末に送信するのを防ぎます。完了したら、コマンドを使用して再度有効にできますstty -nostop。私はここにいるUnix Power Tools第3版本

はい

以下は、私の端末のSTDOUTを汚染するサンプルアプリケーションです。

$ while [ 1 ];do echo hi 2>&1;sleep 5;done &

次のように5秒ごとに「こんにちは」を鳴らします。

[1] 30913
hi
$ hi
hi
hi
hi

今私が実行したときstty tostop

$ stty tostop
$ date
Thu May  9 14:22:44 EDT 2013
$ date
Thu May  9 14:23:52 EDT 2013

このアプローチの問題は、他のプロセスが停止することです。

$ jobs
[1]+  Stopped                 while [ 1 ]; do
    echo hi 2>&1; sleep 5;
done

このアプローチの問題は、stty -tostopプロセスを復元せずにsttySTDOUTが再び許可されることを指定した設定のみを設定することです。したがって、プロセスを手動で復元する必要があります。

$ stty -tostop
$ jobs
[1]+  Stopped                 while [ 1 ]; do
    echo hi 2>&1; sleep 5;
done

$ fg
while [ 1 ]; do
    echo hi 2>&1; sleep 5;
done
hi
^Z

[1]+  Stopped                 while [ 1 ]; do
    echo hi 2>&1; sleep 5;
done
$ bg
[1]+ while [ 1 ]; do
    echo hi 2>&1; sleep 5;
done &
$ hi
hi
hi
hi
hi

上記は私が実行しているプロセスを示しています。次に、STDOUTをフォアグラウンドに汚染するstty -tostopコマンドを実行し、+を実行してプロセスを停止し、バックグラウンドコマンドを使用します。fgwhile ...CtrlZwhile ...bg

追加のアイデア

U&L Q&Aでおすすめのツールをチェックしてください。

試すことができるツールと可能なパスがたくさんありますscreentmuxSTDOUTを汚染するプロセスを使用することも、他の端末に再接続することもできます。reptyr

おすすめ記事