複数のプロセスが同じログファイルに書き込もうとしたときのsyslogの使い方を知りたいです。
for i in $var
do
some process >> logfile &
done
wait
答え1
あなたはできます
some process | logger &
プロセスを作成し、その出力をシステムログに送信します。基本機能は「ユーザー」、基本レベルは「通知」です。このオプションを使用して変更できます-p
。
これが問題なく動作する理由は、プロセスがターゲットファイルに直接書き込まないためです。適切なファイルへの書き込みを管理するsyslogデーモンにメッセージを送信します。私が理解しているように、原子性はラインベースです。つまり、プロセスのすべての出力ラインは中断せずにsyslogに移動しますが、複数のラインメッセージを他のプロセスのラインと混在させることができます。