谈谈 systemd 208 的 journalctl,以及 openSUSE 13.1 的 syslog

先说一下我的看法和做法:
1、systemd 的 journald 在进行 persistent log 时效率低下,journalctl 在读取以 G 为单位的 log 时效率低下(不使用 -b --since 之类的参数),除非你有 ssd 或进行测试,尽量别用(别装 systemd-logger)。
2、13.1 后普通用户无法直接用 journalctl 来看 log 了,我的做法是在 rsyslog.conf 中加一行:

$FileCreateMode 0644

然后删除 /var/log/message,重启后普通用户可以用 less 看,也可以用 lnav、ksystemlog 等专门的日志查看器看。
由于 lnav 对 rsyslog 的日志文件支持不是很好,颜色好像不太对,所以我换成了 syslog-ng,然后把配置文件的 global option 那一行改为:

options { chain_hostnames(off); flush_lines(0); perm(0644); stats_freq(3600); threaded(yes); };

再相应地修改 /etc/logrotate.d/syslog 的权限设置(640 改 644)

再说一下原因:
看一下 rhbz 的两个 bug report:https://bugzilla.redhat.com/show_bug.cgi?id=1006386(#54、#37)
bugzilla.redhat.com/show_bug.cgi?id=967521(比较长)
再看 opensuse ml:http://lists.opensuse.org/opensuse-factory/2013-11/msg00021.html(还有回复)
我已经试过,即使限制到 40M,在 openSUSE 上启动时间还是会慢 4-5 秒(7200 转硬盘),不过没有 fedora 19 那样 block 掉 plymouth、NetworkManager、firewalld、gdm 之类的,可能是因为 openSUSE 还没有完全迁移到 systemd 吧(如:Starting LSB: X Display Manager)