我想知道当多个进程尝试写入同一个日志文件时 syslog 的用法
for i in $var
do
some process >> logfile &
done
wait
答案1
你可以做
some process | logger &
生成进程并将其输出定向到系统日志。请注意,默认设施为“用户”,默认级别为“通知”。您可以使用该选项更改它们-p
。
之所以能够在没有问题的情况下工作,是因为进程不会直接写入目标文件。它们将消息发送到系统日志守护进程,该守护进程管理对适当文件的写入。据我了解,原子性将是基于行的,即进程的每一行输出都将不受干扰地进入系统日志,但多行消息可能会混合来自其他进程的行。