
여러 프로세스가 다음과 같은 동일한 로그 파일에 쓰려고 할 때 syslog의 사용법을 알고 싶었습니다.
for i in $var
do
some process >> logfile &
done
wait
답변1
넌 할 수있어
some process | logger &
프로세스를 생성하고 해당 출력을 syslog로 보내도록 합니다. 기본 기능은 "사용자"이고 기본 수준은 "알림"입니다. 옵션 을 사용하여 변경할 수 있습니다 -p
.
이것이 Probelm 없이 작동하는 이유는 프로세스가 대상 파일에 직접 쓰지 않기 때문입니다. 그들은 적절한 파일에 대한 쓰기를 관리하는 syslog 데몬에 메시지를 보냅니다. 내가 이해하는 한, 원자성은 라인 기반입니다. 즉, 프로세스의 모든 출력 라인은 간섭 없이 syslog로 이동하지만 여러 라인 메시지는 다른 프로세스의 라인이 혼합될 수 있습니다.