추가 읽기

추가 읽기

~에 따르면runsv매뉴얼 페이지:

service/log 디렉토리가 존재하는 경우, runv는 파이프를 생성하고, service/run 및 service/finish의 표준 출력을 파이프로 리디렉션하고, service/log 디렉토리로 변경하고 ./run 스크립트를 시작합니다. 로깅 서비스의 표준 입력은 파이프에서 읽도록 리디렉션됩니다.

분명히 runsv서비스의 표준 출력(표준 오류 출력이 아님)만 svlogd 표준 입력으로 리디렉션됩니다. 내 질문은: 왜? 물론 내 장치의 표준 오류 출력을 기록하고 싶습니다. exec 2>&1각 단위 파일의 시작 부분에 특별히 주의를 기울여야 하는 이유는 무엇입니까?

건배!

답변1

사실, 당신은 모릅니다.

runsv이 행동은 다음에서 비롯됩니다.svscan원래 Bernstein daemontools에서도 동일한 작업을 수행했습니다. 거의 모든 사람들이 그것을 복사했습니다. 브루스 건터의svscanLaurent Bercot의 daemontools-encore에서s6-svscans6와 웨인 마샬에서perpd범인의 사람들은 모두 이런 일을 합니다.

아담 샘슨(Adam Sampson)도 svscan출신이다.함대err코드에서 파일 설명자를 호출하더라도 표준 출력만 연결됩니다. ☺

exec 2>&1과 가 fdmove -c 2 1표준이 되었으며 일부 프로그래밍 언어가 명확하게 정의되어 있음을 관찰하십시오 .표준 로그파일 설명자 2의 스트림(예: C++)으로 끝내기 위해 다음을 std::clog수행했습니다.service-managernosh 도구 세트에서 두 개의 표준 출력을 연결하십시오.그리고파이프라인 서비스가 함께 있을 때 파이프라인의 표준 오류입니다.

추가 읽기

관련 정보