Как вернуть файл /etc/init.d/ccpd?

Я возился с настройками принтера.

И один из шагов был:

sudo update-rc.d ccpd defaults 20

Это дало ошибку ccpd file already exists.

Поэтому, не раздумывая, я сделал:

sudo rm /etc/init.d/ccpd

Теперь там написано file ccpd doesn't exist - вероятно, не следовало этого делать.

Итак ... Как мне вернуть ccpd обратно

0
задан 2 June 2015 в 15:37

2 ответа

Если ccpd = Демон Принтера Canon для CUPS,

тогда вот сценарий

#!/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

ИСТОЧНИК

0
ответ дан 2 June 2015 в 15:37

Базирующийся прочь руководство по инсталляции , можно загрузить и извлечь просто файл, в котором Вы нуждаетесь. Это достаточно легко вручную, но мы можем представить и сделать это в одном перемещении и никаком временном пухе, лежащем вокруг впоследствии:

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 загрузки, tar извлекают вложенный исходный архив и передали это другому экземпляру tar, который считывает файл, который передает в tee для записи в правильный файл как корень.

Примечание : это дает существенно отличающийся результат NikTh. Я не уверен, основано ли это просто на обновленной версии сценария, но там Вы идете, вот версия, которую Вы в настоящее время получали бы с моим кодом:

#!/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
0
ответ дан 2 June 2015 в 15:37

Другие вопросы по тегам:

Похожие вопросы: