Busybox syslog启用/禁用klogd

时间:2018-01-12 13:50:22

标签: embedded embedded-linux yocto busybox

我知道我可以将busybox配置为使用klogdCONFIG_KLOGD)构建,并且开箱即用。

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

提前致谢。

1 个答案:

答案 0 :(得分:0)

好吧,我真的宁愿有其他人的反应,但由于没有其他人来,我认为我自己的解决方案胜过没有解决方案,以防万一其他人需要它。

我已经挖掘了源代码,看起来没有命令行开关或配置选项来选择性地启用/禁用klogd

然而,init-script提供了一种非常好的方法。

1. 启动/停止 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,只需对该行进行评论。

    /etc/syslog-startup.conf案例之前,
  1. /etc/init.d/syslog仅由start)提供:
  2. (基本上是脚本中的第一件事)

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

    好吧,我可以向/etc/syslog-startup.conf添加一个变量,我可以在init脚本中测试它,以选择性地启用/禁用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"
    

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