Szczególnie mnie to interesuje, gdy spojrzę na wyniki usług oneshot, które działają na zegarze. --unit
Flaga jest blisko, ale nie skleja wszystkie te serie usługi razem. Najbardziej oczywistym sposobem, jaki mogę wymyślić, byłoby filtrowanie na PID, ale to sprawia, że martwię się o ponowne użycie PID / usługi, które rozwidlają się, a uzyskanie ostatniego PID jest dość niewygodne. Czy istnieje jakiś inny identyfikator odpowiadający jednemu uruchomieniu usługi, którego można użyć do filtrowania dzienników?
EDYCJA: Z radością przyjąłbym wiarygodne „nie”, jeśli to jest prawdziwa odpowiedź.
źródło
journalctl --user -u UNITFILE -f -o json-pretty
może być pomocny; szukaszMESSAGE
w szczególności pól. Dowiedziałem się, że możesz również potrzebowaćUSER_INVOCATION_ID
, a także niektóre wiadomości nie mają przypisanego identyfikatora wywołania, więc nie można ich przefiltrować przez ten mechanizm. Nie wiem dlaczego, może moje logowanie jest źle skonfigurowane ..Nie jestem pewien, który znacznik czasu jest najbardziej sensowny, ale to działa dla mnie. Mamy nadzieję, że istnieje lepszy sposób pracy ze znacznikami czasu od
systemctl show
awk - nie udało się ustalić, jak kontrolować format znaczników czasu.źródło
systemctl show -p ActiveEnterTimestamp thermo.service | awk '{print $2 \" \" $3}'
" -fu thermo.service | mniejsystemctl show -p ActiveEnterTimestamp --value $unit
, więc nie ma potrzeby dodatkowego awkZa pomocą flagi rozruchowej można pobrać tylko dzienniki z tego rozruchu. na przykład
źródło
Mogą ci pomóc:
journalctl -u foo.service | ogon -n 2
lub zamień 2 na oczekiwaną liczbę linii
journalctl -u foo.service --since = ' 2016-04-11 13:00:00 '
Możesz również połączyć je, aby uzyskać najpierw znacznik czasu ostatniego uruchomienia, a następnie użyć tego znacznika czasu z przełącznikiem --since.
źródło
Możesz używać filtrów pól z Journalctl. Na przykład
Uzyskaj listę wszystkich dostępnych pól, używając:
Jedno dostępne pole to
_PID
.Możesz uzyskać PID uruchomionego procesu za pomocą
pidof
lubsystemctl show --property MainPID <SERVICE_NAME>
Oto, w jaki sposób otrzymuję dzienniki z bieżącego procesu Kubeletetes Kubelet:
Teraz powiedz mi, dlaczego I Kubernetes jest tak trudny do zainstalowania :-(
źródło
dziennik -l | grep -m1 foo.service
źródło