FreeBSD: Como iniciar um script python como daemon?

4

Estou enfrentando um problema com um arquivo python que gostaria de iniciar como um serviço. Eu nomeei meu serviço ocrserver e o script que eu quero começar está em /home/administrator/ocr/ocrserver/init.py com alguns parâmetros adicionados como --address --port etc ... Depois de ler a documentação do site do FreeBSD

Eu escrevi o seguinte script:

#!/bin/sh

# $FreeBSD$
#
# PROVIDE: ocrserver 
# REQUIRE: NETWORK
# KEYWORD: shutdown

# add the following line to /etc/rc.conf to enable the ocrserver:
# ocrserver_enable="YES"

. /etc/rc.subr

name="ocrserver"
rcvar="ocrserver_enable"

# default values
: ${ocrserver_enable="NO"}

base_path="/home/administrator/ocr/ocrserver"

address="localhost"
http_port=8080
pyproxy_port=10800

log_level="debug"

pidfile="${base_path}/ocrserver.pid"

command="/usr/sbin/daemon"

# -p : daemon handler pidfile
# -f : redirect stdout and stderr to /dev/null
# -c : change working dir to root
command_args="-p ${pidfile} -f -c /home/administrator/ocr/ocrserver/__init__.py \
--address ${address} --http-port ${http_port} --log-level ${log_level} \
--pyproxy-port ${pyproxy_port}"

procname="/home/administrator/ocr/ocrserver/__init__.py"
command_interpreter="/usr/local/bin/python3.3"

load_rc_config $name
run_rc_command "$1"

Em seguida, adicionei uma linha configurando o rcvar correspondente para YES no arquivo /etc/rc.conf. e eu lancei:

serviço sudo ocrserver start onde recebo a mensagem "Starting ocrserver". e depois de entrar em um status ocrserver do serviço sudo, eu posso ver que o serviço não está rodando. Eu também executei um comando pgrep -l python3.3 para ver se algum processo python3 estava em execução, mas nenhum resultado

Preciso que eu fiz um chmod 755 no arquivo para torná-lo legível e executável por todos os usuários.

Alguém tem alguma experiência com esse tipo de coisa?

Obrigado pelas suas respostas.

    
por onizukaek 01.11.2013 / 11:50

0 respostas