У меня есть программа на 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 и не дает мне никаких отзывов?
я догадываюсь / USR / местные / бен (или везде, где двоичный файл python находится во FreeBSD) не существует в $PATH
при запуске скриптов инициализации.
Попробуйте изменить command_interpreter="python"
к command_interpreter="/usr/local/bin/python"
.
Кроме того, ваш файл содержит Shebang (с правильным путем) и исполняемый файл?
Маловероятно, что python находится на пути при загрузке.
Попробуйте указать полный путь в переменной command_interpreter.