Я возился с настройками принтера.
И один из шагов был:
sudo update-rc.d ccpd defaults 20
Это дало ошибку ccpd file already exists
.
Поэтому, не раздумывая, я сделал:
sudo rm /etc/init.d/ccpd
Теперь там написано file ccpd doesn't exist
- вероятно, не следовало этого делать.
Итак ... Как мне вернуть ccpd
обратно
Если 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
Базирующийся прочь руководство по инсталляции , можно загрузить и извлечь просто файл, в котором Вы нуждаетесь. Это достаточно легко вручную, но мы можем представить и сделать это в одном перемещении и никаком временном пухе, лежащем вокруг впоследствии:
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