今コースのためのいくつかの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
ないものから始めます。ブロックされるので、stdbuf
2つの端末が必要です。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ターミナルでお会いできます。