Como obter o arquivo /etc/init.d/ccpd de volta?

0

Eu estava mexendo nas configurações da impressora.

E um dos passos foi:

sudo update-rc.d ccpd defaults 20

Deu um erro ccpd file already exists .

Então, sem pensar muito, eu fiz:

sudo rm /etc/init.d/ccpd

Agora diz file ccpd doesn't exist - provavelmente não deveria ter feito isso.

Então ... Como obtenho ccpd de volta?

    
por Serge Vinogradoff 02.06.2015 / 14:37

2 respostas

1

Se ccpd = Daemon de Impressora Canon para o CUPS,

então aqui está o script

#!/bin/sh
# startup script for Canon Printer Daemon for CUPS (ccpd)

# Provides:         ccpd
# Required-Start:   $local_fs $remote_fs $syslog $network $named
# Should-Start:     $ALL
# Required-Stop:    $syslog $remote_fs
# Default-Start:    2 3
# Default-Stop:     0 1 4 5 6
# Description:      Start Canon Printer Daemon for CUPS


DAEMON=/usr/sbin/ccpd
LOCKFILE=/var/lock/subsys/ccpd
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=ccpd
DESC="Canon Printer Daemon for CUPS"

test -f $DAEMON || exit 0

. /lib/lsb/init-functions

case $1 in
  start)
        log_begin_msg "Starting $DESC: $NAME"
        start-stop-daemon --start --quiet --exec $DAEMON
        log_end_msg $?
        ;;
  stop)
        log_begin_msg "Stopping $DESC: $NAME"
        start-stop-daemon --stop --quiet --oknodo --exec $DAEMON
        log_end_msg $?
        ;;
  status)
        echo "$DESC: $NAME:" 'pidof $NAME'
        ;;
  restart)
        log_begin_msg "Restarting $DESC: $NAME"
        start-stop-daemon --stop --quiet --oknodo --exec $DAEMON
        sleep 1
        start-stop-daemon --start --quiet --exec $DAEMON
        log_end_msg $?
        ;;
  *)
        echo "Usage: ccpd {start|stop|restart|status}"
        exit 1
        ;;
esac

exit 0

SOURCE

    
por NickTux 02.06.2015 / 14:51
0

Com base no guia de instalação , você pode fazer o download e extrair apenas o arquivo de que precisa. Isso é fácil o suficiente manualmente, mas podemos nos mostrar e fazer isso em um único movimento, e nenhum fluff temporário por aí:

wget -qO- http://gdlp01.c-wss.com/gds/6/0100004596/03/Linux_CAPT_PrinterDriver_V260_uk_EN.tar.gz \
| tar xzO Linux_CAPT_PrinterDriver_V260_uk_EN/Src/cndrvcups-capt-2.60-1.tar.gz \
| tar xzO cndrvcups-capt-2.60-1/samples/ccpd \
| sudo tee /etc/init.d/ccpd >/dev/null

wget downloads, tar extrai o archive de origem aninhado e passou para outra instância de tar que lê o arquivo, que passa para tee para gravar no arquivo correto como raiz.

Nota : isto dá um resultado significativamente diferente do da NikTh. Não tenho certeza se isso é baseado apenas em uma versão atualizada do script, mas lá está você, aqui está a versão que você atualmente obtém com o meu código:

#!/bin/sh
# startup script for Canon Printer Daemon for CUPS (ccpd)

if [ -f /etc/rc.d/init.d/functions ]; then
    if [ -f /etc/slackware-version ]; then
        SYS_F="SL"
    else
        . /etc/rc.d/init.d/functions 
        SYS_F="RH"
    fi
elif [ -x /sbin/startproc ]; then
    SYS_F="Su"
elif [ -x /sbin/start-stop-daemon ]; then
    SYS_F="De"
fi

DAEMON=/usr/sbin/ccpd
LOCKFILE=/var/lock/subsys/ccpd

export PATH=$PATH:/usr/local/sbin:/usr/local/bin

ccpd_start ()
{
    echo -n "Starting ${DAEMON}: "

    if [ "$SYS_F" = "RH" ]; then    
        daemon ${DAEMON}
        [ "$?" = "0" ] && touch ${LOCKFILE}
        echo "."
    elif [ "$SYS_F" = "Su" ]; then
        startproc ${DAEMON}
        echo "."
    elif [ "$SYS_F" = "De" ]; then
        start-stop-daemon --start --quiet --oknodo --exec ${DAEMON}
        echo "."
    else
        '${DAEMON}'
    fi
}

ccpd_stop ()
{
    echo -n "Shutting down ${DAEMON}: "

    if [ "$SYS_F" = "De" ]; then
        start-stop-daemon --stop --quiet --oknodo --signal 15 --exec ${DAEMON}
        echo "."
    elif [ "$SYS_F" = "SL" ]; then
        kill -KILL 'pidof ${DAEMON}'
        [ "$?" = "0" ] && rm -f ${LOCKFILE}
        echo 
    else
        killproc ${DAEMON}
        [ "$?" = "0" ] && rm -f ${LOCKFILE}
        echo    
    fi
}


case $1 in

    start)
        ccpd_start
        ;;

    stop)
        ccpd_stop
        ;;

    status)
        echo "${DAEMON}:" 'pidof ${DAEMON}'
        ;;

    restart)
        ccpd_stop
        ccpd_start
        ;;

    *)
        echo "Usage: ccpd {start|stop|status}"
        exit 1
        ;;
esac
exit 0
    
por Oli 02.06.2015 / 16:28