journalctl 列表直到最后一个单元开始

Ela*_*ich 6 systemd journalctl

在调试加载失败的服务时,人们希望做的一项常见任务是查看上次服务启动时的所有日志。

例如,给定

Jul 25 08:18:20 raspberrypi ngrok[3105]: Incorrect Usage: flag provided but not defined: -log
Jul 25 08:20:04 raspberrypi systemd[1]: ngrok@ssh.service holdoff time over, scheduling restart.
Jul 25 08:20:04 raspberrypi systemd[1]: Stopping Share local port(s) with ngrok...
Jul 25 08:20:04 raspberrypi systemd[1]: Starting Share local port(s) with ngrok...
Jul 25 08:20:04 raspberrypi systemd[1]: Started Share local port(s) with ngrok.
Jul 25 08:20:04 raspberrypi ngrok[5474]: t=2016-07-25T08:20:04+0000 lvl=warn msg="failed to get home directory, using $HOME instead" err="user: Current not implemented on linux/arm" $HOME=
Jul 25 08:20:04 raspberrypi ngrok[5474]: Failed to open log file '/dev/stdout': open /dev/stdout: no such device or address
Run Code Online (Sandbox Code Playgroud)

我想查看自Jul 25 08:20:04 raspberrypi systemd[1]: Starting Share local port....

类似于journalctl --boot,但从上次服务启动开始。

那可能吗?

同样,类似的--list-boots内容列出 systemctl 启动或停止服务的所有时间将允许我模仿journalctl --last-start -u svc我想要的行为。

meu*_*euh -1

获取上次服务启动日志的最简单方法不是journalctl而是systemctl status:例如

sudo systemctl status --no-pager -l -n 99999 svc
Run Code Online (Sandbox Code Playgroud)

您还可以为journalctl指定一个开始时间,例如提前1小时:

sudo journalctl --no-pager --since='-1h' -u svc
Run Code Online (Sandbox Code Playgroud)

或从特定时间开始:--since='16:00'