启动bash脚本

时间:2014-08-25 08:19:50

标签: linux bash busybox

您好我有这样的问题。我有init脚本,我必须运行syslogd(busybox),所以我有这样的代码:

...
"$__start_program" $OPTIONS
....

如果我

echo "$__start_program $OPTIONS"

打印

/sbin/syslogd -s 512 -l 6 -L -O "/var/log/a.log"

我在ps看到了这个过程,但实际上系统日志没有启动(日志文件中没有关于启动的消息,logger没有写任何东西来记录)。但是如果我从命令行手动运行这个脚本(使用相同的参数),它可以正常工作。有人可以帮我解决这个问题吗?

1 个答案:

答案 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