여러 프로세스가 동일한 로그 파일에 쓰려고 할 때 로그 파일이 왜곡되는 것을 방지하기 위해 syslog를 사용하는 방법은 무엇입니까?

여러 프로세스가 동일한 로그 파일에 쓰려고 할 때 로그 파일이 왜곡되는 것을 방지하기 위해 syslog를 사용하는 방법은 무엇입니까?

여러 프로세스가 동일한 로그 파일에 쓰려고 할 때 syslog의 사용법을 알고 싶습니다.

for i in $var
do
some process >> logfile &
done
wait

답변1

넌 할 수있어

some process | logger &

프로세스를 생성하고 해당 출력을 시스템 로그로 보냅니다. 기본 기능은 "사용자"이고 기본 수준은 "알림"입니다. 이 옵션을 사용하여 변경할 수 있습니다 -p.

이것이 문제 없이 작동하는 이유는 프로세스가 대상 파일에 직접 쓰지 않기 때문입니다. 적절한 파일에 대한 쓰기를 관리하는 syslog 데몬에 메시지를 보냅니다. 내가 이해하는 바에 따르면 원자성은 라인 기반입니다. 즉, 프로세스의 모든 출력 라인은 중단 없이 syslog로 이동하지만 여러 라인 메시지는 다른 프로세스의 라인과 혼합될 수 있습니다.

관련 정보