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)) &