O programa Python não está sendo iniciado pelo rc.d no FreeBSD 7.1

1

Eu tenho um programa python que escrevi e gostaria de executar na inicialização do FreeBSD 7.1.

Para minha instalação atual, o script mora em %código%. No início do meu /home/devuser/project/trunk/src/proj em main eu adicionei (para teste)

os.system("echo 'proj STARTED' >> /tmp/projlog")

Em /usr/local/etc/rc.d/ eu tenho 'proj' que contém:

#!/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"

No meu rc.conf:

rc_debug="YES"
proj_enable="YES"

Se eu executar proj como /usr/local/etc/rc.d/proj <start|stop|status> , tudo funcionará como esperado - root runs, proj aparece em trying to run proj e /tmp/rclog aparece em proj STARTED .

Na inicialização do sistema, recebo /tmp/projlog em trying to run proj , mas nada em /tmp/rclog - python não está sendo iniciado.

Por que o script rc está sendo executado, mas falha ao invocar o Python, e não está me dando nenhum feedback?

    
por gdm 25.11.2009 / 21:10

2 respostas

4

Eu estou supondo que / usr / local / bin (ou onde quer que o binário python resida no FreeBSD) não exista em $PATH quando executando scripts init.

Tente alterar command_interpreter="python" para command_interpreter="/usr/local/bin/python" .

Além disso, o seu arquivo contém um shebang (com um caminho correto) e é executável?

    
por 25.11.2009 / 21:29
1

É altamente improvável que o Python esteja no caminho na inicialização.

Tente especificar o caminho completo na sua variável command_interpreter.

    
por 25.11.2009 / 21:29