【问题标题】:Busybox syslog enable/disable klogdBusybox syslog 启用/禁用 klogd
【发布时间】:2018-01-12 13:50:21
【问题描述】:

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

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

提前致谢。

【问题讨论】:

    标签: embedded embedded-linux yocto busybox


    【解决方案1】:

    好吧,我真的很希望得到其他人的回应,但由于没有其他人来,我认为我自己的解决方案总比没有解决方案要好,以防其他人需要它。

    我已经挖掘了源代码,看起来没有命令行开关或配置选项来选择性地启用/禁用 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,只需将那一行注释掉即可。

    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 添加一个变量,我可以在初始化脚本中对其进行测试,以选择性地启用/禁用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"
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-07
      • 2016-08-22
      • 1970-01-01
      • 2017-02-01
      • 2015-01-24
      • 1970-01-01
      • 1970-01-01
      • 2016-07-10
      相关资源
      最近更新 更多