FreeBSD rc脚本输出到文件

时间:2015-01-06 10:37:35

标签: python freebsd rc.d

我在下面有这个脚本,我开始一个python程序 python程序输出到stdout / terminal。但是我希望程序能够通过rc脚本静默启动。

我可以开始并完美地停止程序。它还会创建日志文件,但是要为它填充任何内容。我尝试了很多不同的方法。即使使用守护进程作为入门者。

我的问题在哪里?

#!/bin/sh
# REQUIRE: DAEMON
# KEYWORD: shutdown
. /etc/rc.subr

location="/rpiVent"

name="rpiVentService"
rcvar=`set_rcvar`
command="$location/$name"
#command_args="> $location/$name.log" // Removed
command_interpreter="/usr/bin/python"

load_rc_config $name
run_rc_command "$1"

1 个答案:

答案 0 :(得分:0)

使用>管道是shell的一项功能,而不是命令行的实际部分。当以编程方式涉及命令时,给出它们的参数不能包含shell指令(除非父进程对shell有特殊支持,例如Python subprocess.Popen(shell=True)doc)。

在这种情况下你可以做的是你可以将命令(/rpiVent/rpiVentService)包装到shell脚本然后在FreeBSD rc脚本中调用这个shell脚本::

创建/rpiVent/run.sh

 #!/bin/sh
 /rpiVent/rpiVentservice > /rpiVent/rpiVentService.log 

然后使用它是command(不需要args)。