您好我有这样的问题。我有init脚本,我必须运行syslogd(busybox),所以我有这样的代码:
...
"$__start_program" $OPTIONS
....
如果我
echo "$__start_program $OPTIONS"
打印
/sbin/syslogd -s 512 -l 6 -L -O "/var/log/a.log"
我在ps
看到了这个过程,但实际上系统日志没有启动(日志文件中没有关于启动的消息,logger
没有写任何东西来记录)。但是如果我从命令行手动运行这个脚本(使用相同的参数),它可以正常工作。有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
不要使用字符串来存储命令,这不是他们所要求的。 link provided in the comments包含了对这可能导致的潜在问题的一些很好的讨论。
从一个字符串开始而另一个字符串结束的问题不清楚,但你应该使用一个函数来实现你想要做的事情。像这样:
log_daemon() {
param_s="$1"
logfile="$2"
/sbin/syslogd -s "$param_s" -l 6 -L -O "$logfile"
}
然后从您的脚本中调用它,如:
log_daemon 512 /var/log/a.log