Автор Тема: A stop job is running for ccpd.service (drivers for Laser Shot LBP-1120)[Решено]  (Прочитано 15198 раз)

Оффлайн igorigor76

  • Завсегдатай
  • *
  • Сообщений: 651
Centaurus x86_64 p7 обновлен до p8.
uname -a
Linux Computer1.localdomain 4.19.40-un-def-alt0.M80P.1 #1 SMP PREEMPT Sun May 5 17:29:25 UTC 2019 x86_64 GNU/Linux
Установлены:
cndrvcups-capt-2.71-1
cndrvcups-common-3.21-1

Установлен принтер Laser Shot LBP-1120
Запуск сервиса ccpd прописан в /etc/rc.d/rc.local
/etc/init.d/ccpd start
При этом при выключении/перезагрузке компьютер "висит" на строчке:
A stop job is running for ccpd.service (** s/5 min 1 s)
Если запуск ccpd прописать как описано здесь: http://solvpro.ru/251-linux-%d0%b8-%d0%bf%d1%80%d0%b8%d0%bd%d1%82%d0%b5%d1%80%d1%8b-canon/
то при выключении/перезагрузке компьютер "висит" на строчке:
A stop job is running for SYSV: Canon Print for Cups (** s/5 min 1 s)
Если запуск ccpd прописать как описано здесь: https://forum.altlinux.org/index.php?topic=40399.msg319047#msg319047, то ccpd не запускается автоматически.

Если перед выключением/перезагрузкой остановить сервис ccpd, вык./пер. проходят корректно.
« Последнее редактирование: 16.05.2019 15:51:35 от igorigor76 »

Оффлайн rits

  • Завсегдатай
  • *
  • Сообщений: 1 031
  • ITS
Re: A stop job is running for ccpd.service
« Ответ #1 : 15.05.2019 19:40:05 »
у меня так chmod +x /etc/rc.d/rc.local
$ cat /etc/rc.d/rc.local
#!/bin/bash
/etc/init.d/ccpd start

# systemctl status cups
org.cups.cupsd.service - CUPS Scheduler
   Loaded: loaded (/lib/systemd/system/org.cups.cupsd.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2019-05-15 20:06:44 +04; 34min ago
     Docs: man:cupsd(8)
 Main PID: 2130 (cupsd)
   Status: "Scheduler is running..."
    Tasks: 1 (limit: 4716)
   Memory: 2.0M
   CGroup: /system.slice/org.cups.cupsd.service
           └─2130 /usr/sbin/cupsd -l


« Последнее редактирование: 15.05.2019 19:41:54 от rabochyITs »

Оффлайн igorigor76

  • Завсегдатай
  • *
  • Сообщений: 651
Re: A stop job is running for ccpd.service
« Ответ #2 : 15.05.2019 20:24:26 »
у меня так chmod +x /etc/rc.d/rc.local
$ cat /etc/rc.d/rc.local
Код: [Выделить]

#!/bin/bash
/etc/init.d/ccpd start
Это все так же, с запуском ccpd проблем нет, и принтер печатает.

А здесь есть отличие, не знаю на сколько оно принципиально, и может это влиять на отключение и перезагрузку компьютера.
# systemctl status cups
● org.cups.cupsd.service - CUPS Scheduler
   Loaded: loaded (/lib/systemd/system/org.cups.cupsd.service; disabled; vendor preset: disabled)
   Active: active (running) since Wed 2019-05-15 18:41:25 MSK; 1h 34min ago
     Docs: man:cupsd(8)
 Main PID: 1412 (cupsd)
   Status: "Scheduler is running..."
    Tasks: 1 (limit: 4580)
   Memory: 8.3M
   CGroup: /system.slice/org.cups.cupsd.service
           └─1412 /usr/sbin/cupsd -l

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 6 222

Оффлайн igorigor76

  • Завсегдатай
  • *
  • Сообщений: 651
Re: A stop job is running for ccpd.service
« Ответ #4 : 15.05.2019 21:07:30 »
Еще раз пишу, проблема при выключении компьютера.

При этом при выключении/перезагрузке компьютер "висит" на строчке:
A stop job is running for ccpd.service (** s/5 min 1 s)или
A stop job is running for SYSV: Canon Print for Cups (** s/5 min 1 s)

P.S.
На всякий случай:
# systemctl status ccpd
● ccpd.service - SYSV: Canon Printing for CUPS
   Loaded: loaded (/etc/rc.d/init.d/ccpd; generated)
   Active: active (running) since Wed 2019-05-15 21:04:36 MSK; 13min ago
     Docs: man:systemd-sysv-generator(8)
  Process: 1176 ExecStart=/etc/rc.d/init.d/ccpd start (code=exited, status=0/SUCCESS)
    Tasks: 3 (limit: 4580)
   Memory: 5.9M
   CGroup: /system.slice/ccpd.service
           ├─1516 /usr/sbin/ccpd
           ├─1558 /usr/sbin/ccpd
           └─1559 captmon --data-write-fd=7 --data-read-fd=11 --cmd-write-fd=12 --cmd-read-fd=15 --output-fd=3 --input-fd=3

май 15 21:04:22 Computer1.localdomain systemd[1]: Starting SYSV: Canon Printing for CUPS...
май 15 21:04:36 Computer1.localdomain ccpd[1176]: [35B blob data]
май 15 21:04:36 Computer1.localdomain systemd[1]: Started SYSV: Canon Printing for CUPS.
« Последнее редактирование: 15.05.2019 21:19:29 от igorigor76 »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: A stop job is running for ccpd.service
« Ответ #5 : 16.05.2019 04:03:58 »
Еще раз пишу, проблема при выключении компьютера.

При этом при выключении/перезагрузке компьютер "висит" на строчке:
A stop job is running for ccpd.service (** s/5 min 1 s)или
A stop job is running for SYSV: Canon Print for Cups (** s/5 min 1 s)

:-) Я не systemd-эшник. Но долго за этим наблюдал и моё терпение закончилось.

Лёнька Поттеринг обещал, что в systemd будет всё просто, не то что в этих сраных простынях инитов.
Сначала читать простыню Лёнькиной документации про --force
https://www.freedesktop.org/software/systemd/man/systemctl.html

От Лёньки Поттеринга привет:
https://forum.altlinux.org/index.php?topic=32355.msg227745#msg227745

Если запуск ccpd прописать как описано здесь: http://solvpro.ru/251-linux-%d0%b8-%d0%bf%d1%80%d0%b8%d0%bd%d1%82%d0%b5%d1%80%d1%8b-canon/
то при выключении/перезагрузке компьютер "висит" на строчке:
A stop job is running for SYSV: Canon Print for Cups (** s/5 min 1 s)

Если запуск ccpd прописать как описано здесь: https://forum.altlinux.org/index.php?topic=40399.msg319047#msg319047, то ccpd не запускается автоматически.

Потому шо инит-скрипту работающему в поттеринго-ините, нужен LSB-хидер, на который sysv-иниту, глубоко насрать.
Ссылки внизу:
https://forum.altlinux.org/index.php?topic=32361.msg253079#msg253079
Этот LSB-хидер в инит-скрипте нужен только для интеграции инит-скрипта в поттеринго-инит и ни для чего больше.

Нечто такого с BEGIN INIT INFO
$ head -n 31 /mnt/sda8/etc/rc.d/init.d/cups
#!/bin/sh

# Init file for the CUPS server daemon
#
# chkconfig: 2345 60 40
# description: The Common UNIX Printing System (CUPS), an \
#              advanced printer spooling system which \
#              allows setting of printer options and \
#              automatic availability of a printer \
#              configured on one server in the whole \
#              network. Default printing system of Linux \
#              Mandrake.
#
# processname: cupsd
# config: /etc/cups/cupsd.conf
# config: /etc/cups/client.conf
# config: /etc/cups/classes.conf
# config: /etc/cups/printers.conf
# config: /etc/cups/mime.types
# config: /etc/cups/mime.convs
# config: /etc/cups/ppds.dat
### BEGIN INIT INFO
# Provides: cups
# Required-Start: $syslog $local_fs
# Required-Stop: $syslog $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: The CUPS server daemon
# Description: The CUPS server daemon
### END INIT INFO

но в Required-Start: Required-Stop: указывающих на cups.

Подобно тому, как сервис NetworkManager указывает на messagebus:
стартовать после messagebus
останавливаться перед messagebus
$ sed -n '12,20p' /etc/rc.d/init.d/NetworkManager
### BEGIN INIT INFO
# Provides: network_manager
# Required-Start: $local_fs messagebus
# Required-Stop: $local_fs messagebus
# Default-Start:  3 4 5
# Default-Stop: 0 1 6
# Short-Description: start and stop NetworkManager
# Description: NetworkManager is a tool for easily managing network connections
### END INIT INFO

ИМХО потому как очередь start-stop
# Init file for the CUPS server daemon
#
# chkconfig: 2345 60 40

которую надо изобрести в ccpd для поттеринго-инита
Цитировать
http://solvpro.ru/251-linux-и-принтеры-canon/

# ccpd          Canon Printing for CUPS
# chkconfig:    2345 65 35
# description:  Canon Printing for CUPS
# processname:  ccpd
# config:       /etc/ccpd.conf
(стартовать позже чем cups, останавливаться раньше чем cups)

Или читать простыню документации по сыстемдецу и ваять поттеринго-сервис с этими самыми перед и после.
Чтобы если чиво, сыстемдец мог сделать килл застрявшему на шатдаун сервису.
Хотя в sysv, это вообще нонсенс, за исключением smb_umnt существующего по причине засады в NM
(нарушение порядка stop):
- Ни одна сетевая файловая не должна размонтироваться позже дисконнект.

Оффлайн sb

  • Модератор глобальный
  • *****
  • Сообщений: 8 991
Re: A stop job is running for ccpd.service
« Ответ #6 : 16.05.2019 06:38:35 »
Время идёт, а проприетарщики себе не изменяют: они не в курсе не только того, что вы пишите о поведении их драйверов в системе с ситемд, но, похоже, и о самом существовании systemd. В идеале данная тема должна попадать в раздел проприетарное ПО, но в силу специфики драйверов от некоторых производителей подобные темы остаются в этом разделе, т.к. они имеют отношение к драйверам устройств.
Лучший вариант решения данной проблемы это написать в канон и напомнить им, что на дворе всё же 21 век и systemd таки существует в нашей реальности. Пусть узнают про существование системд и напишут таки нормальный инит скрипт.

Оффлайн rits

  • Завсегдатай
  • *
  • Сообщений: 1 031
  • ITS
Re: A stop job is running for ccpd.service
« Ответ #7 : 16.05.2019 06:45:21 »
у меня так chmod +x /etc/rc.d/rc.local
$ cat /etc/rc.d/rc.local
Код: [Выделить]

#!/bin/bash
/etc/init.d/ccpd start
Это все так же, с запуском ccpd проблем нет, и принтер печатает.

А здесь есть отличие, не знаю на сколько оно принципиально, и может это влиять на отключение и перезагрузку компьютера.
# systemctl status cups
● org.cups.cupsd.service - CUPS Scheduler
   Loaded: loaded (/lib/systemd/system/org.cups.cupsd.service; disabled; vendor preset: disabled)
   Active: active (running) since Wed 2019-05-15 18:41:25 MSK; 1h 34min ago
     Docs: man:cupsd(8)
 Main PID: 1412 (cupsd)
   Status: "Scheduler is running..."
    Tasks: 1 (limit: 4580)
   Memory: 8.3M
   CGroup: /system.slice/org.cups.cupsd.service
           └─1412 /usr/sbin/cupsd -l

без запущенного 'cups', драйвера многих принтеров не поставить некоторыми утилитами типа hp-setup -i,
добавь запуск сервера печати в автозагрузку # systemctl enable cups

Оффлайн rits

  • Завсегдатай
  • *
  • Сообщений: 1 031
  • ITS
Re: A stop job is running for ccpd.service
« Ответ #8 : 16.05.2019 06:51:04 »
...
Лучший вариант решения данной проблемы это написать в канон и напомнить им, что на дворе всё же 21 век и systemd таки существует в нашей реальности. Пусть узнают про существование системд и напишут таки нормальный инит скрипт.

Систем'д существует, а вот принтера этой линейки нет. Сетевые кеноны очень даже неплохо на альтах работатют под системд. Проверял только, CN421 и CN244.

Оффлайн sb

  • Модератор глобальный
  • *****
  • Сообщений: 8 991
Систем'д существует, а вот принтера этой линейки нет.
Всё сказанное не отменяет того факта, что в канон про системд не знают и писать современные инит скрипты не умеют. Лентяи и раздолбаи, если в двух словах.

Оффлайн rits

  • Завсегдатай
  • *
  • Сообщений: 1 031
  • ITS
Систем'д существует, а вот принтера этой линейки нет.
Всё сказанное не отменяет того факта, что в канон про системд не знают и писать современные инит скрипты не умеют. Лентяи и раздолбаи, если в двух словах.

И не только производители MFP ))

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 6 222
Re: A stop job is running for ccpd.service
« Ответ #11 : 16.05.2019 14:05:14 »
Время идёт, а проприетарщики себе не изменяют: они не в курсе не только того, что вы пишите о поведении их драйверов в системе с ситемд, но, похоже, и о самом существовании systemd. В идеале данная тема должна попадать в раздел проприетарное ПО, но в силу специфики драйверов от некоторых производителей подобные темы остаются в этом разделе, т.к. они имеют отношение к драйверам устройств.
Лучший вариант решения данной проблемы это написать в канон и напомнить им, что на дворе всё же 21 век и systemd таки существует в нашей реальности. Пусть узнают про существование системд и напишут таки нормальный инит скрипт.
эти конкретные модели уже давно сняты с производства  и не поддерживаются. Драйвера эти достаточно старые и, по-честному, никогда стабильно не работали.

Оффлайн igorigor76

  • Завсегдатай
  • *
  • Сообщений: 651
Удалил из файла /etc/init.d/ccpd
# ccpd          Canon Printing for CUPS
# chkconfig:    2345 65 35
# description:  Canon Printing for CUPS
# processname:  ccpd
# config:       /etc/ccpd.conf
Т.е. вернул ccpd  к исходному состоянию.

Далее:
chkconfig ccpd offТ.е. вернул к исходному состоянию.

Прописал автозапуск через rc.local
#!/bin/bash
/etc/init.d/ccpd start

В /etc/init.d/ создал скрипт ccpdstop:
#!/bin/bash
/etc/init.d/ccpd stop
Создал символические ссылки K00ccpdstop на него в /etc/rc.d/rc0.d/ и в /etc/rc.d/rc6.d/

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Чтобы сервис мог отработать не только на старте, но и на разгрузке системы, необходим lock-файл с именем сервиса:
# ll /var/lock/subsys/|grep smb_umnt
-rw-r--r--  1 root root    0 апр 27 23:22 smb_umnt

При наличии файла lock_file, позволяет системе определить, что сервис запущен и при разгрузке системы выполнить скрипт с параметром stop.
Если не содавать файл lock, выполняется только старт сервиса.
Если не удалять файл lock, выполняется только стоп сервиса.

Оффлайн igorigor76

  • Завсегдатай
  • *
  • Сообщений: 651
При таком запуске, через rc.local:
/etc/init.d/ccpd startlock_file создается.
# ll /var/lock/subsys/|grep ccpd
-rw-r--r-- 1 root root   0 май 16 16:56 ccpd

При выключении и перезагрузке
/etc/init.d/ccpd stopсрабатывает корректно, я проверял.
« Последнее редактирование: 16.05.2019 17:18:08 от igorigor76 »