我知道我可以将busybox配置为使用klogd
(CONFIG_KLOGD
)构建,并且开箱即用。
我想知道,如果我可以通过命令行开关或syslog-startup.conf选项在运行时启用/禁用此功能,而无需重新编译busybox。
提前致谢。
答案 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
案例之前,/etc/init.d/syslog
仅由start)
提供:(基本上是脚本中的第一件事)
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"
由于我在配置文件中添加了非标准变量,所以它仍然非常难看,但我觉得它不如第一个难看,所以这就是我建议的解决方案。