如何追蹤systemd單元日誌?

如何追蹤systemd單元日誌?

我有一個正在運行的 systemd 單元,我想追蹤它的日誌。

我知道我可以使用以下方式顯示單位日誌:

journalctl -u my_unit.service

但這僅打印當前日誌而不跟踪它們。

我知道我還可以systemd使用以下方式追蹤日誌:

journalctl -f

但這會透過追蹤所有已知日誌來發送垃圾郵件,因此我必須搜尋我感興趣的內容。

臨時解決方案似乎是透過管道追蹤日誌以 grep 過濾輸出,但這不是非常系統化的解決方案:

journalctl -f | grep "what i'm interested in"

沒有追蹤某個單位日誌的命令嗎?

我嘗試過但沒有成功:

journalctl -uf my_unit.service

答案1

我發現我使用參數的順序不正確。實際上可以透過使用以下方式追蹤單一單元的日誌:

journalctl -fu my_unit.service

其他工作變化:

journalctl -f -u my_unit.service
journalctl -u my_unit.service -f

journalctl手動的:

-u,--unit=UNIT|PATTERN

    顯示指定 systemd 單元的訊息UNIT(例如服務單位),或任何與PATTERN。如果指定了模式,則會將日誌中找到的單位名稱清單與指定的模式進行比較,並使用所有符合的內容。對於每個單元名稱,都會新增來自該單元的訊息的符合項目 (" "),以及來自 systemd 的訊息和有關指定單元的核心轉儲的訊息的附加符合項目。_SYSTEMD_UNIT=UNIT

    此參數可以指定多次。

-f, --follow

    僅顯示最新的日記條目,並在新條目附加到日記時連續列印它們。

相關內容