From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: To: community@altlinux.ru Subject: Re: [Comm] OpenOffice print troubles References: <200410210401.34148.dead-mustdie@nm.ru> <1098334957.2919.14.camel@iceb> <417766EB.3010508@altlinux.ru> Message-ID: Date: Thu, 21 Oct 2004 12:23:40 +0400 From: "Aleksander N. Gorohovski" Organization: DonNTU Content-Type: multipart/mixed; boundary=----------zBZpdKP9kH4pR7jp1XFuvA MIME-Version: 1.0 In-Reply-To: <417766EB.3010508@altlinux.ru> User-Agent: Opera M2/7.54 (Linux, build 751) X-BeenThere: community@altlinux.ru X-Mailman-Version: 2.1.5 Precedence: list Reply-To: community@altlinux.ru List-Id: Mailing list for ALT Linux users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Oct 2004 09:20:11 -0000 Archived-At: List-Archive: List-Post: ------------zBZpdKP9kH4pR7jp1XFuvA Content-Type: text/plain; format=flowed; delsp=yes; charset=koi8-r Content-Transfer-Encoding: 8bit On Thu, 21 Oct 2004 16:36:11 +0900, Ivan Fedorov wrote: > Yura Kalinichenko пишет: >> В Чтв, 21.10.2004, в 03:01, dm написал: >> >> >>> И ещё нечто совсем непонятное. Ещё повожусь с этим, но, может, это >>> кому-то известный глюк. Пытаюсь печатать файл на принтер (из того же >>> ОО). Ставлю десять копий. Запускаю. После выплёвывания первого листа >>> вижу, что результат меня отнюдь не устраивает и выполняю lprm. После >>> этого возникает дикая ситуация: lpq показывает что очередь печати >>> принтера пуста, в localhost:631/printers/ написано, что lpt порт busy. >>> А принтер продолжает печатать, как заведённый, причём после десятого >>> листа не останавливается >> >> >> Это бага системы печати. Если вы посмотритете после lprm от рута на >> список процессов через ps -xa, то увидите "болтающийся" процесс >> parallel:/dev/lp0 (ну или куда там у вас принтер подключен). По идее, он >> должен убиваться при выполнении lprm, но увы... Поэтому в cups'е >> активное задание - неубиваемо, и не только для OOo. До выхода Master 2.4 >> я для обхода этой неприятности использовал свой скрипт, который выполнял >> lprm-cups + sudo kill ... (скрипт недавно был опубликован в этой >> рассылке). Однако в 2.4 он пока не работает, поскольку теперь >> пользователю недоступен полный список процессов. > Добавьте пользователя в группу proc В свое время мне Yura Kalinichenko прислал вот скринт (в атаче) огромное спасибо ему за это. ------------zBZpdKP9kH4pR7jp1XFuvA Content-Disposition: attachment; filename=lprm Content-Type: application/octet-stream; name=lprm Content-Transfer-Encoding: 8bit #!/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 # # 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 ------------zBZpdKP9kH4pR7jp1XFuvA--