arquivo freebsd pid não criado

1

Arquivos Pid não criados na pasta / var / run.

script rc.d:

#!/bin/sh

. /etc/rc.subr

name=phpcgi
rcvar=phpcgi_enable
pidfile=/var/run/${name}.pid
command=/usr/local/bin/php-cgi

load_rc_config $name
run_rc_command "$1"

está funcionando bem, mas o problema é com o arquivo pid. não pode encontrá-lo quando eu tento "serviço phpcgi parar". permissões estão corretas. como posso resolver isso?

    
por dima.h 04.04.2012 / 08:13

2 respostas

1

Tente ativar o rastreamento para que o script lhe diga o que está fazendo em cada etapa. Você obterá muitos resultados, por isso recomendo capturá-lo usando uma sessão script . Substitua a primeira linha do script por

#!/bin/sh -x

e, em seguida, execute:

# script phpcgi-trace
# service phpcgi start
# service phpcgi stop
# ^D

O arquivo phpcgi-trace conterá um registro de tudo o que o script tentar fazer. Pesquise por pistas de porque não está soltando um pidfile.

EDITAR

Observe que a linha pidfile= no script rc está lá para informar rc como verificar o status do programa controlado ou como pará-lo. Não está lá para dizer a rc para escrever um pidfile - essa é a responsabilidade do programa controlado.

Se o phpcgi não escrever um pidfile quando for iniciado, o mais fácil é simplesmente omitir a linha pidfile= e deixar rc usar o nome do processo para verificar o status, etc.

    
por 04.04.2012 / 11:35
0

O argumento pidfile é usado apenas pelo script rc para verificar se o processo já está em execução. O script não cria o arquivo para você. O programa que você está executando deve criar o arquivo em si.

Como alternativa, você pode adicionar esta linha ao final do seu script RC e o arquivo pid deve ser criado.

echo ${rc_pid} > ${pidfile}
    
por 04.04.2012 / 15:19

Tags