ALT Linux Community general discussions
 help / color / mirror / Atom feed
* [Comm] Crazy printing
@ 2004-04-29  8:33 Aleksander N.Gorohovski
  2004-04-29 13:42 ` Yura Kalinichenko
  0 siblings, 1 reply; 4+ messages in thread
From: Aleksander N.Gorohovski @ 2004-04-29  8:33 UTC (permalink / raw)
  To: community

Доброго времени суток Уважаемое сообщество!

Споткнулся с такой проблемой когда пользователь отправляет
на печать (струйный EPSON Stilus Color 600) случайно не тот файл.
Выполняю процедуру отмены задания печати:
# lpstat -u
выдает :Epson-2356
# lprm 2356
продолжает печатать.
# lpstat -u
нет заданий на печать
# lpq
нет заданий на печать

Выключаю принтер и через некоторое время (30 сек) включаю -
все равно продолжает допечатывать!

Создается такое впечатление, что где-то (в буфере системы)
находиться какая-то часть документа, которая не отображается по
lpstat и lpq.

Единственное, что помогает - это перезагрузка системы (Master2.2)
  Но это же не нормально.  :-(

Подскажите как можно справиться с этой проблемой.
Может нужно ручками удалять какой-нибудь файл,
например, из /var/spool/cups

C уважение,
Aleksander N.G.
DonNTU, Donetsk




^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Comm] Crazy printing
  2004-04-29  8:33 [Comm] Crazy printing Aleksander N.Gorohovski
@ 2004-04-29 13:42 ` Yura Kalinichenko
  2004-04-30 10:48   ` Aleksander N.Gorohovski
  0 siblings, 1 reply; 4+ messages in thread
From: Yura Kalinichenko @ 2004-04-29 13:42 UTC (permalink / raw)
  To: Список
	рассылки
	ALTLinux

[-- Attachment #1: Type: text/plain, Size: 989 bytes --]

В Чтв, 29.04.2004, в 11:33, Aleksander N.Gorohovski написал:
> Доброго времени суток Уважаемое сообщество!
> 
> Споткнулся с такой проблемой когда пользователь отправляет
> на печать (струйный EPSON Stilus Color 600) случайно не тот файл.
> Выполняю процедуру отмены задания печати:
> # lpstat -u
> выдает :Epson-2356
> # lprm 2356
> продолжает печатать.
> # lpstat -u
> нет заданий на печать
> # lpq
> нет заданий на печать
> 
> Выключаю принтер и через некоторое время (30 сек) включаю -
> все равно продолжает допечатывать!
> 
> Создается такое впечатление, что где-то (в буфере системы)
> находиться какая-то часть документа, которая не отображается по
> lpstat и lpq.
> 

Есть такая бага в этом слове. Сделав ps -xa вы могли бы увидеть активный
процесс parallel (или на чем там у вас принтер сидит), каковой lprm'мом
не убивается. Для себя я эту проблему решил с помощью небольшого
скриптика, который ставлю вместо lprm - см. вложение.

-- 
Yura Kalinichenko
mob.  +380 67 587 83 02


[-- Attachment #2: lprm --]
[-- Type: text/x-sh, Size: 1676 bytes --]

#!/bin/sh
#
# This is a temporary replacement for buggy lprm from spooling system CUPS.
# Fixed bug is: original can't really stop active job
# Autor: Yura Kalinichenko <yuk@iceb.vinnitsa.com>
#
# Additional requirements:
# 	all users must have permission for `kill' as user `lp'.
# 	For example, you can enter in file `sudoers' next string:
# 	ALL     ALL=(lp) NOPASSWD: /bin/kill
#
# Yes, now every user can kill any printing, but...
#

CMDLINE=`getopt -o P: -- "$@"`
if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 255 ; fi
eval set -- "$CMDLINE"

while true ; do
	case "$1" in
	-P) PRINTER=$2
            shift 2
            ;;
        --) shift ; break
            ;;
        esac
done

if [ -z "$PRINTER" ]; then
   PRINTER=`lpstat -d | sed -e "s/system default destination: //"`
   if [ -z "$PRINTER" ]; then
      echo "No default printer - use  \"-P printer_name\"" > /dev/stderr
      exit 255
   fi
fi

jobs=$*

driver=`lpstat -v $PRINTER | sed -e "s/device for $PRINTER: //"`

status=0
if [ "$jobs" = "-" ]; then
  # remove all jobs for the PRINTER 
     jobs=`lpstat $PRINTER | cut -d\  -f1 | sed -e "s/$PRINTER-//"`
fi
for n in $jobs ; do
  # remove separate job by number
    # first remove job from spool queue
    if lprm-cups -P $PRINTER $n ; then
    # then kill driver of active job if is
       pid=`ps -C $driver --format pid,command`
       pid=`echo $pid | grep "$driver $n "`
       pid=`echo $pid | awk '{print $3}'`
       if [ -n "$pid" ]; then
          sudo kill -9 $pid
       fi
    else
       # lprm-cups is failed, maybe "not owner". 
       # Bad return status, but continue
       status=`expr $status + 1`
    fi
done
exit $status

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Comm] Crazy printing
  2004-04-29 13:42 ` Yura Kalinichenko
@ 2004-04-30 10:48   ` Aleksander N.Gorohovski
  2004-04-30 16:11     ` Yura Kalinichenko
  0 siblings, 1 reply; 4+ messages in thread
From: Aleksander N.Gorohovski @ 2004-04-30 10:48 UTC (permalink / raw)
  To: community

Yura Kalinichenko пишет:

>В Чтв, 29.04.2004, в 11:33, Aleksander N.Gorohovski написал:
>  
>
>>Доброго времени суток Уважаемое сообщество!
>>
>>Споткнулся с такой проблемой когда пользователь отправляет
>>на печать (струйный EPSON Stilus Color 600) случайно не тот файл.
>>Выполняю процедуру отмены задания печати:
>># lpstat -u
>>выдает :Epson-2356
>># lprm 2356
>>продолжает печатать.
>># lpstat -u
>>нет заданий на печать
>># lpq
>>нет заданий на печать
>>
>>Выключаю принтер и через некоторое время (30 сек) включаю -
>>все равно продолжает допечатывать!
>>
>>Создается такое впечатление, что где-то (в буфере системы)
>>находиться какая-то часть документа, которая не отображается по
>>lpstat и lpq.
>>
>>    
>>
>
>Есть такая бага в этом слове. Сделав ps -xa вы могли бы увидеть активный
>процесс parallel (или на чем там у вас принтер сидит), каковой lprm'мом
>не убивается. Для себя я эту проблему решил с помощью небольшого
>скриптика, который ставлю вместо lprm - см. вложение.
>
Премного Вам благодарен.
Хочу по испытывать Ваш скрипт в "боевых" условиях.
Если я правильно Вас понял необходимо вместо ссылки
/etc/alternatives/lprm  -> /usr/bin/lprm-cups
скопировать Ваш скрипт lprm и назначить права и владельца - 500 root:root
А дальше использовать как и стандартную lprm c теми же параметрами
для удаления заданий принтера, например.

# lprm 2356


Все правильно?

C уважением,
Aleksander N.G.
DonNTU, Donetsk




^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Comm] Crazy printing
  2004-04-30 10:48   ` Aleksander N.Gorohovski
@ 2004-04-30 16:11     ` Yura Kalinichenko
  0 siblings, 0 replies; 4+ messages in thread
From: Yura Kalinichenko @ 2004-04-30 16:11 UTC (permalink / raw)
  To: Список
	рассылки
	ALTLinux

В Птн, 30.04.2004, в 13:48, Aleksander N.Gorohovski написал:

> Премного Вам благодарен.
> Хочу по испытывать Ваш скрипт в "боевых" условиях.
> Если я правильно Вас понял необходимо вместо ссылки
> /etc/alternatives/lprm  -> /usr/bin/lprm-cups
> скопировать Ваш скрипт lprm и назначить права и владельца - 500 root:root

Ну зачем же 500 ? Надо ж и обычным юзерам дать возможность удалять
задания. Только sudo им настроить как там сказано.

-- 
Yura Kalinichenko
mob.  +380 67 587 83 02




^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2004-04-30 16:11 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-04-29  8:33 [Comm] Crazy printing Aleksander N.Gorohovski
2004-04-29 13:42 ` Yura Kalinichenko
2004-04-30 10:48   ` Aleksander N.Gorohovski
2004-04-30 16:11     ` Yura Kalinichenko

ALT Linux Community general discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
		mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
	public-inbox-index community

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.community


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git