stdbufまたはnohupの実際の用途は何ですか?

stdbufまたはnohupの実際の用途は何ですか?

今コースのためのいくつかのcoreutilsコマンドを書く必要がありますstdbuf。誰かがいくつかの特定のUNIXコマンドの対話を変更するために使用しましたか?私はそれが何をしているのか知っています。最初に浮上するコマンドには独自のバッファリング制御機能があり、通常の端子出力はとにかくラインバッファリングされます。ログに追加するのに人気がありますが、これを実証するための良いコマンドが見つかりませんでした。

の場合、nohup中断を防ぐために通常実行されるコマンドはありますか?

前述のように、私は現在コースの課題のためにこれをやっています。ただし、これはその規則に違反しません。私はこの例のための良い出発点を見つけようとしています。私は一つもなくstdbuf、私が使っている基本的なものも気に入らませんnohup

答え1

stdbufの例は次のとおりです。http://www.pixelbeat.org/programming/stdio_buffering/

nohup は、ログイン全体で実行したい長期実行コマンドに使用されます。 screen(1) を使用するか遡及して、screen+ を使用してこれを行うこともできます。https://github.com/nelhage/reptyr

答え2

ないものから始めます。ブロックされるので、stdbuf2つの端末が必要です。tail -f

ターミナル1

touch log_file1
tail -f log_file1 | cut -d " " -f 1 | uniq

ターミナル2

echo "A 1" >> log_file1

ターミナル 1 に出力は表示されません。

stdbufもう一度やり直してターミナル1に追加してみましょう。

touch log_file2
tail -f log_file2 | stdbuf -oL cut -d " " -f 1 | uniq

ターミナル2

echo "A 1" >> log_file2

今回はA第1ターミナルでお会いできます。

答え3

これは具体例

stdbuf -oL ./a.out > log.txt   

印刷出力は、使用されている場合にのみファイルstdbufにパイプすることができます。

関連情報