Método semelhante ao /etc/init.d

0

Eu configurei meu script para ser executado usando o método /etc/init.d . Tudo funciona bem. O problema é que meu script faz a captura de pacotes e quando ele reinicia a máquina depois de dizer que o crond está carregado, ele carrega esse script e o processo de captura de pacotes, que eu acho que inicia e ele pára de avançar. Existe algum método em que eu possa forçá-lo apenas para iniciar quando o Linux estiver totalmente carregado?

Abaixo está a aparência do meu script.

#!/bin/bash
# chkconfig: 2345 95 05
# myapp daemon
# description: myapp daemon
# processname: myapp

DAEMON_PATH="/usr/local/bin/"
DAEMON=pc1.c
#DAEMONOPTS="-my opts"
NAME=pc1.c
DESC="my packet capture"

PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

case "$1" in
start)
    printf "%-50s" "Starting $NAME..."
    insmod /usr/local/pfring/kernel/pf_ring.ko
    /usr/local/bin/pc1.c &
    $! > PIDFILE    
;;
status)
        if [ -f $PIDFILE]; 
        then if [ -d /proc/cat $PIDFILE ]; 
             then echo "Process is running"; 
             fi; 
        else echo "Error! PID file is missing!"; 

        fi

;;
stop)
        printf "%-50s" "Stopping $NAME"
            PID='cat $PIDFILE'
            cd $DAEMON_PATH
        if [ -f $PIDFILE ]; then
            kill -HUP $PID
            printf "%s\n" "Ok"
            rm -f $PIDFILE
        else
            printf "%s\n" "pidfile not found"
        fi
;;
restart)
    $0 stop
    $0 start 
;;
*)
        echo "Usage: $0 {status|start|stop|restart}"
        exit 1
esac
    
por biz14 20.08.2013 / 19:31

1 resposta

2

Se você executasse o comando executado em seu script init.d com '&' após o término do comando, ele se tornará um processo em segundo plano e os próximos serviços poderão ser iniciados.

Se você quiser que o script seja executado como a etapa final (ele ainda bloquearia se não fosse o plano de fundo) de seu processo de inicialização, você poderia executá-lo por meio de /etc/rc.local (ou sua distro equivalente se você não usa) t tem um ...)

    
por 20.08.2013 / 19:35