우선순위가 다른 로거에 nohup 출력을 파이프합니다.

우선순위가 다른 로거에 nohup 출력을 파이프합니다.

nohup을 사용하여 백그라운드에서 실행되는 타사 Python 스크립트가 있습니다. 출력을 파일로 파이프하는 대신 다음을 사용하여 출력을 시스템 로그에 추가하고 싶습니다.기록계. 이 외에도 우선 순위 "user.error" 및 일반 출력 "user.notice"를 사용하여 오류 출력을 기록해야 합니다. 이렇게 하면 적어도 오류가 로그에 나타날 것이라고 확신합니다.

nohup 없이 간단한 명령을 실행하면 작동하는 것 같습니다.

ls /tmp 1> >(logger --priority user.notice --tag myTag) 2> >(logger --priority user.error --tag myTag)

그러나 /w nohup을 실행하면 예기치 않은 결과가 발생합니다.

nohup sh -c ls /tmp 1> >(logger --priority user.notice --tag myTag) 2> >(logger --priority user.error --tag myTag) &

로그에는 "nohup:ignore input"이 포함되며 때로는 빈 항목도 포함됩니다.

누군가 이 명령을 올바르게 작성하도록 도와줄 수 있나요?

답변1

nohup출력을 로거로 리디렉션하고 있습니다 . (또는 Python 스크립트)의 출력을 리디렉션하려면 ls다음을 사용할 수 있습니다.명령 대체:

nohup sh -c $(ls /tmp 1> >(logger --priority user.notice --tag myTag) 2> >(logger --priority user.error --tag myTag)) &

관련 정보