Busybox 系统日志 enable/disable klogd

Busybox syslog enable/disable klogd

我知道我可以将 busybox 配置为使用 klogd (CONFIG_KLOGD) 构建,它开箱即用。

不过,我想知道,如果我可以在 运行 时通过命令行开关或 syslog-startup.conf 选项 enable/disable 此功能,而无需重新编译busybox。

提前致谢。

好吧,我真的很想有其他人的回应,但既然没有其他人来,我认为我自己的解决方案总比没有解决方案好,以防万一其他人需要它。

我已经深入研究了源代码,看起来没有命令行开关或配置选项可以选择性地 enable/disable klogd.

不过,初始化脚本提供了一种非常好的方法。

1.Start/Stop的syslogd和klogd是分开的行:

start)
    echo -n "Starting syslogd/klogd: "
    start-stop-daemon -S -b -n syslogd -a /sbin/syslogd -- -n $SYSLOG_ARGS
    start-stop-daemon -S -b -n klogd -a /sbin/klogd -- -n
    echo "done"

现在最丑陋的想法是,如果 klogd 不启动,只需注释掉该行即可。

  1. /etc/syslog-startup.conf 仅由 /etc/init.d/syslog 提供,在 start) 案例之前:

(基本上是脚本中的第一件事)

if [ -f /etc/syslog-startup.conf ]; then
    . /etc/syslog-startup.conf

好吧,我可以向 /etc/syslog-startup.conf 添加一个变量,我可以在 init 脚本中测试它以选择性地 enable/disable start-stop-daemon ... klog

start)
    echo -n "Starting syslogd/klogd: "
    start-stop-daemon -S -b -n syslogd -a /sbin/syslogd -- -n $SYSLOG_ARGS
    [ "$KLOGD_DISABLE" = "yes" ] || \
        start-stop-daemon -S -b -n klogd -a /sbin/klogd -- -n
    echo "done"

由于我在配置文件中添加了一个非标准变量,它仍然非常难看,但我觉得它没有第一个那么难看,所以这就是我提出的解决方案。