kjo*_*kjo 8 startup debian systemd
在“启动序列” 1接近尾声时,我看到一连串很长的诊断消息很快就过去了,就在我看到登录提示2 之前。
AFAICT,大多数(如果不是全部)构成此短暂输出的行都以下面显示的任一字符串开头
[ OK ]
[FAILED]
Run Code Online (Sandbox Code Playgroud)
...其中OK
为绿色,FAILED
为红色3。
这些消息闪得太短,我无法阅读。
我的问题是:
有没有办法让这些消息更容易阅读?
想到的可能解决方案包括(按优先顺序):
Press any key to continue...
);编辑:根据我目前得到的评论,我必须得出结论,上面 (1) 中的逐字逐字词要么没有被理解,要么没有被认真对待,即使我已经尽可能多地强调了。如果可以的话,我会让它闪光...
EDIT2:meuh在评论中给出的建议对我来说似乎很有希望,但我还没有能够让它发挥作用。这是我所做的:
首先,我在末尾添加了以下内容/etc/rsyslog.conf
:
# Save boot messages also to boot.log
local7.* /var/log/boot.log
Run Code Online (Sandbox Code Playgroud)
...并重新启动。我看到通常的诊断消息飞过,但没有/var/log/boot.log
创建文件。
然后,在(不可否认的)事件中,必须/var/log/boot.log
已经存在rsyslog
才能写入它,我执行(以 root 身份):
touch /var/log/boot.log
chgrp adm /var/log/boot.log
chmod 640 /var/log/boot.log
Run Code Online (Sandbox Code Playgroud)
......在chgrp
和chmod
命令旨在使所有权和权限/var/log/boot.log
匹配的所有下的其他日志文件/var/log
。然后我重新启动,看到消息等。/var/log/boot.log
重新启动后文件仍然是空的。
(我得到了相同的非结果,当我改变的权限/var/log/boot.log
来666
。)
我grep
将 的输出journalctl --boot
和下面的文件/var/log
用于我能想到的任何可能指出我的rsyslog
. (我根本不熟悉rsyslog
,所以我确定我的搜索非常无能。)
很明显,到目前为止我所做的还不足以启用所需的日志记录。我现在正在寻找我错过的任何东西。不过,我还没有找到很多相关的文档。例如,既没有rsyslog.conf(5)
也没有rsyslogd(8)
屈尊解释什么local7
是(rsyslog.conf(5)
至少足够亲切地提及一次,而没有提供任何进一步的信息)。
编辑3
发行信息:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 8.3 (jessie)
Release: 8.3
Codename: jessie
$ uname -a
Linux myhost 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt20-1+deb8u3 (2016-01-17) x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
编辑4
其他可能相关的信息:
$ cat /lib/systemd/system/rsyslog.service
[Unit]
Description=System Logging Service
Requires=syslog.socket
Documentation=man:rsyslogd(8)
Documentation=http://www.rsyslog.com/doc/
[Service]
Type=notify
ExecStart=/usr/sbin/rsyslogd -n
StandardOutput=null
Restart=on-failure
[Install]
WantedBy=multi-user.target
Alias=syslog.service
Run Code Online (Sandbox Code Playgroud)
$ cat /proc/$(pgrep rsyslogd)/limits
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size 0 unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 128529 128529 processes
Max open files 1024 4096 files
Max locked memory 65536 65536 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 128529 128529 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
$ sudo ls /proc/$(pgrep rsyslogd)/fd | wc -l
10
Run Code Online (Sandbox Code Playgroud)
1即当我(重新)启动我的机器时发生的事情。
2 FWIW,multi-user.target
是我的默认设置。
3剩余的文字在黑色背景上全部为白色。随后的登录提示也是如此。
4,我觉得完全无法接受的是没有让我看到这些消息的确切文本,因为他们在启动过程中出现的任何解决方案。因为,我总是不熟悉这些诊断消息中的任何一个,所以我不可能识别原始消息传达的基本信息可能被转述的所有方式,传播到多个其他消息在其他消息等纳入(仅仅针对网上搜索确切措辞的原始邮件我有找到解决问题的希望。)拍卖我试过到目前为止,包括journalctl -b
和dmesg
失败在给我逐字逐句的原始消息. 例如,当我运行 startup 我只能看到一个 red FAILED
,但journalctl --boot | grep FAILED | wc -l
返回0
,并journalctl --boot | grep -i FAILED | wc -l
返回1086
。这些都不是我要找的。
5在我的系统中,我按下此类键或组合键的时间不到一秒钟,并且没有预先警告这个短暂间隔何时开始。除非能够配置必须发生此类按键的间隔持续时间,否则任何基于按键的解决方案都太不切实际,只能作为最后的手段。另外,FWIW,当消息闪烁时,我确实尝试按或键,但两者都没有任何区别。Scroll
LockPause/
Break
您可以设置一个内核命令行参数(类似于console=tty0 console=ttyS0,115200n8
)来将它们发送到串行控制台,然后侦听串行端口的设备可以简单地记录它,因为那时它只是一个文本流。
如果 systemd 不记录这些东西,那就太愚蠢了。Openrc 在 /var/log/rc.log 中执行此操作。另外,如果它不是 systemd,您可能可以修改 inittab 以不在 tty1 上放置 getty/Xorg,并防止任何内容(如 Xorg)在其他地方切换,并且旧文本可能会保留在原处(就像在旧文本上所做的那样) openSUSE 之前的 systemd)。或者将其复制到另一个 tty(我认为是 syslog 执行此操作而不是 inittab...并且您可能会看到许多 Linux 安装程序在 tty9+ 上执行此操作)如果它切换回来,它就不会向后滚动(shift+pgup) ),但可能会有一页输出。也许对 systemd 了解更多的人知道 inittab 的新等效项,您可以更改它。
归档时间: |
|
查看次数: |
1553 次 |
最近记录: |