![우선순위가 다른 로거에 nohup 출력을 파이프합니다.](https://linux55.com/image/121412/%EC%9A%B0%EC%84%A0%EC%88%9C%EC%9C%84%EA%B0%80%20%EB%8B%A4%EB%A5%B8%20%EB%A1%9C%EA%B1%B0%EC%97%90%20nohup%20%EC%B6%9C%EB%A0%A5%EC%9D%84%20%ED%8C%8C%EC%9D%B4%ED%94%84%ED%95%A9%EB%8B%88%EB%8B%A4..png)
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)) &