Systemctl status 始终显示完整日志,即使使用 --lines

Bau*_*r42 8 raspberry-pi kali-linux systemctl

我正在尝试获取一个单元的状态,但只有前 3 行是这样的:

systemctl --user status resilio-sync --lines=3
Run Code Online (Sandbox Code Playgroud)

我已经用 -n 3 等尝试了各种变体,但没有任何效果。奇怪的部分:它总是显示完整的日志(13 行),而不是 10 行,根据systemctl的文档应该是默认值。

尝试systemctl status证实了这一点:它只是将所有 45 行输出到终端,而实际上应该是 10 行。

我在这里错过了什么吗?据我所知,我没有改变任何东西。

作为一种解决方法,我目前正在使用:

systemctl --user status resilio-sync | sed -ne '1,3p'
Run Code Online (Sandbox Code Playgroud)

但我宁愿解决根本问题并使用本机命令。系统是 Raspberry Pi 上的 Kali Linux(re4son-kernel,粘手指)(很容易归咎于这种奇怪的设置,但由于这是核心 Linux 功能,我认为这无关紧要)

第一个命令的输出

GAD*_*D3R 10

该命令systemctl status显示服务的状态和来自 的相应行journalctl--lines=3将限制显示的日志行数为 3。例如:

systemctl --user status resilio-sync --lines=0
Run Code Online (Sandbox Code Playgroud)

将只显示esilio-sync服务状态而不显示journalctl日志。

-n, --lines=

status 一起使用时,控制要显示的日志行数,从最近的开始计数。采用正整数参数,或0 以禁用日志输出。默认为 10。

要限制systemctl status命令的输出,您可以使用选项:

systemctl check resilio-sync
systemctl is-active resilio-sync
systemctl is-enabled resilio-sync
Run Code Online (Sandbox Code Playgroud)

或通过对选项进行分组:

systemctl is-active is-enabled resilio-sync
Run Code Online (Sandbox Code Playgroud)

  • 哦,--lines 参数只影响日志部分。我在这方面误解了医生。好吧,这就解释了,看来我必须使用“head”或“sed” (2认同)