들어오고 나가는 템플릿 단위(즉, 소켓 활성화 단위)의 시스템 로그를 어떻게 추적합니까?

들어오고 나가는 템플릿 단위(즉, 소켓 활성화 단위)의 시스템 로그를 어떻게 추적합니까?

inetd시스템 소켓 단위와 그에 수반되는 서비스 단위(예: 및 )로 배포된 스타일 my-service.socket서비스 Accept=true가 있습니다 [email protected].

새로운 연결이 수신될 때마다 systemd는 다음과 유사한 템플릿 이름을 가진 서비스 인스턴스를 생성합니다 [email protected]:9418-198.51.100.56:55346.service.

my-service다음 명령을 사용하여 생성된 모든 로그를 볼 수 있습니다 journalctl -u 'my-service@*'. 새로 생성된 로그를 실시간으로 추적하고 싶지만 매뉴얼 페이지에 나와 있는 journalctl -fu 'my-service@*'대로 작동하지 않습니다 .journalctl

패턴이 지정되면 로그에 있는 장치 이름 목록이 지정된 패턴과 비교되어 일치하는 항목이 사용됩니다.

따라서 journalctl이미 실행 중인 인스턴스만 추적되고 나중에 시작되는 인스턴스는 추적되지 않습니다.

[email protected]로그 추적을 시작한 이후 시작된 인스턴스를 포함하여 모든 인스턴스의 모든 로그 출력을 추적할 수 있는 방법이 있습니까 ?

답변1

당신은 시도 할 수 있습니다:

watch journalctl -eu 'my-service@*'
  • "2초마다" 다른 업데이트가 필요한 경우 -n감시 옵션을 사용할 수 있습니다.
  • e옵션을 사용하면 항상 마지막 항목이 표시됩니다. 다음을 참조하세요 man journalctl.

    -e, --pager-end는
    암시적 페이징 도구 내에서 로그 끝으로 즉시 이동합니다.
    즉, -n1000은 호출기가 무한 크기의 로그를 버퍼링하지 않도록 보장합니다.
    이는 명시적인 -n에 의해 다른 값으로 대체될 수 있으며, -nall은 이 한도를 비활성화합니다.
    이 옵션은 less(1) 페이저만 지원합니다.


모든 셀에 대해 별도의 공통 조각을 사용하는 경우 다른 가능성은 셀 조각을 선택하는 것입니다.

-u, --unit=UNIT|PATTERN
...
제공된 UNIT가 systemd.slice(5) 유닛인 경우 해당 슬라이스의 하위 항목에 대한 모든 로그가 표시되도록 "_SYSTEMD_SLICE=UNIT"에 대한 일치 항목도 추가합니다.

답변2

저도 같은 문제를 겪었지만 귀하의 질문을 읽은 후 답을 찾았습니다.

# journalctl -f -u my-service@\*.service

질문해주셔서 감사합니다. 제가 직접 답변을 얻었습니다 =)

관련 정보