adicionando um programa no start-up usando LSBInitScripts

1

Eu uso o Debian Lenny (eu sei que o lenny é antigo e outro bla bla) e gostaria de colocar um programa no start-up. Eu uso update-rc.d adicionando um arquivo executável em /etc/init.d . Ao consultar o link , preciso adicionar um LSB em /etc/init.d/myprogram

### BEGIN INIT INFO
# Provides:          myprogram
# Required-Start:    $all
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable service provided by daemon.
### END INIT INFO

então eu preciso acrescentar qualquer script como:

DAEMON_PATH="/home/myprogram"
DAEMON=node
DAEMONOPTS="-my opts"
NAME=node
DESC="myprogram"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

case "$1" in
start)
    printf "%-50s" "Starting $NAME..."
    cd $DAEMON_PATH
    PID='$DAEMON $DAEMONOPTS > /dev/null 2>&1 & echo $!'
    #echo "Saving PID" $PID " to " $PIDFILE
        if [ -z $PID ]; then
            printf "%s\n" "Fail"
        else
            echo $PID > $PIDFILE
            printf "%s\n" "Ok"
        fi
;;
status)
        printf "%-50s" "Checking $NAME..."
        if [ -f $PIDFILE ]; then
            PID='cat $PIDFILE'
            if [ -z "'ps axf | grep ${PID} | grep -v grep'" ]; then
                printf "%s\n" "Process dead but pidfile exists"
            else
                echo "Running"
            fi
        else
            printf "%s\n" "Service not running"
        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

Senti-me como LSBInitScripts e os scripts acima são diferentes, mas quando eu verifico alguns arquivos em /etc/init.d , eles têm scripts similares. Você poderia, por favor, esclarecer se eu preciso do script acima ou não? Se eu precisar do uso do script acima, eu preciso criar um arquivo .pid ou ele será criado automaticamente?

    
por Angs 16.07.2013 / 00:12

1 resposta

2

No que diz respeito a esse contexto, eles são a mesma coisa. As informações do LSB são apenas metadados na forma de comentários de shell adicionados ao início do init do script.

Basta combinar esses dois pedaços. Deve conter:

  1. A linha do intérprete (por exemplo, #!/bin/sh )
  2. As informações do LSB, editadas de acordo com as necessidades do seu aplicativo.
  3. O restante do script (funções start / stop, etc.).

Se você precisar de um exemplo, consulte /etc/init.d/skeleton . Quando terminar, coloque o arquivo em /etc/init.d/ e use insserv em vez de update-rc.d para instalar os links simbólicos.

    
por 16.07.2013 / 00:26