![FreeBSD 7.1 中的 Python 程序无法由 rc.d 启动](https://linux22.com/image/499775/FreeBSD%207.1%20%E4%B8%AD%E7%9A%84%20Python%20%E7%A8%8B%E5%BA%8F%E6%97%A0%E6%B3%95%E7%94%B1%20rc.d%20%E5%90%AF%E5%8A%A8.png)
我有一个自己编写的 python 程序,希望在 FreeBSD 7.1 启动时运行。
对于我当前的安装,脚本位于 。在/home/devuser/project/trunk/src/proj
我的开头我添加了(用于测试)main
proj
os.system("echo 'proj STARTED' >> /tmp/projlog")
在 /usr/local/etc/rc.d/ 中我有“proj”,其中包含:
#!/bin/sh
# PROVIDE: proj
# REQUIRE: DAEMON LOGIN
# KEYWORD: shutdown
. "/etc/rc.subr"
$location="/home/devuser/project/trunk/src"
name="proj"
rcvar=`set_rcvar`
command="$location/$name"
command_args="$1"
command_interpreter="python"
load_rc_config $name
echo "trying to run proj" >> /tmp/rclog
run_rc_command "$1"
在我的 rc.conf 中:
rc_debug="YES"
proj_enable="YES"
如果我运行/usr/local/etc/rc.d/proj <start|stop|status>
,root
一切都按预期进行 -proj
运行、trying to run proj
出现在 中/tmp/rclog
,并proj STARTED
出现在 中/tmp/projlog
。
在系统启动时,我进入trying to run proj
,/tmp/rclog
但没有任何内容/tmp/projlog
- python 没有启动。
为什么 rc 脚本运行但无法真正调用 Python,并且没有给我任何反馈?
答案1
我正在猜测在/usr/本地/bin$PATH
(或者 FreeBSD 中 Python 二进制文件所在的任何位置)在运行初始化脚本时不存在。
尝试更改command_interpreter="python"
为command_interpreter="/usr/local/bin/python"
。
另外,你的文件是否包含舍邦(具有正确的路径)并且可以执行吗?
答案2
启动时 Python 出现在路径中的可能性极小。
尝试在 command_interpreter 变量中指定完整路径。