我在下面有这个脚本,我开始一个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"
答案 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)。