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
질문해주셔서 감사합니다. 제가 직접 답변을 얻었습니다 =)