Existe uma maneira fácil de criar um script rc do FreeBSD?

8

Eu tenho uma cadeia do FreeBSD na qual eu executo um servidor usando o comando:

/usr/sbin/daemon /path/to/script.py

No momento eu tenho que executar este comando toda vez que eu reiniciar a máquina e a cadeia começar. Eu gostaria de ter este comando iniciado a partir de /etc/rc . Existe uma maneira fácil de criar um script rc do FreeBSD para um comando daemon ?

UPDATE: Eu li em esta documentação do BSD sobre scripts rc , e a partir disso criei o seguinte script em /etc/rc.d/pytivo :

#!/bin/sh

. /etc/rc.subr

name=pytivo
rcvar=pytivo_enable
procname="/usr/local/pytivo/pyTivo.py"

command="/usr/sbin/daemon -u jnet $procname"

load_rc_config $name
run_rc_command "$1"

Isso funciona para iniciar o script python que estou querendo como um daemon quando a cadeia começa ... (dado que pytivo_enable="YES" está em /etc/rc.conf ) mas o script rc não sabe se o daemon está rodando (ele pensa não é quando está) e dá um aviso quando tento iniciá-lo:

[root@meryl /home/jnet]# /etc/rc.d/pytivo start
[: /usr/sbin/daemon: unexpected operator
Starting pytivo.
[root@meryl /home/jnet]# 

Então está perto , e funciona , mas eu sinto que deveria conseguir uma funcionalidade melhor que essa.

    
por Josh 10.10.2012 / 16:34

2 respostas

10
0

Se você não precisa de um script rc, você pode usar apenas /etc/rc.local.

Para o seu script rc você está perdendo comentários de dependência, pelo menos uma linha

# REQUIRE: LOGIN

deve ajudar, pois é executado no momento certo.

Você também pode precisar definir um pidfile

pytivo_pidfile="/path/to/your/pidfile"
    
por 12.10.2012 / 09:05