Backend Skript not executed
Rüdiger Müller
mueller.os at web.de
Fri Jul 27 03:24:52 PDT 2007
Hello all helpfull people,
if Cups starts the Backend it holds this Process and does not execute it.
Output from ps -xa:
3648 ? R 0:00 /bin/bash /usr/lib/cups/backend/an_drucken_aus.sh 78 guest Test Page 1 job-uuid=urn:uuid:55db99d8-092f-3c72-54d3-48cd8a54f730
I do not know why this happens. The script contains a root-statement (switch a electr. socket of an USB-Device on, then wait till no job is in /var/spool/cups, and then switch socket off.), but my user cupsys is in the root-group.
The script could be more elegant for sure. I add it at the end.
So my problem is that the script is executable from command-line with user cupsys, but does not execute when called from within cups.
Version 0.001
---
Script for switching a (Printer)-Socket on before printing, and switching it off when all jobs in /var/spool/cups deleted.
#!/bin/bash
#Diagnose
#If Cups start the script there is no output in the ./whoami file
whoami >> ./whoami
#Parameter
typeset -r jobhdatei="c000"$1
#Constants
typeset -r spooldir="/var/spool/cups"
#Zeit
typeset -i -r nachlaufzeit=5
typeset -i -r zeiteinheit=1
function An()
{
/usr/bin/sispmctl -o 1
typeset -i paus=0
typeset -i weiter=1
while [ $weiter -eq 1 ] ;
do
if [ -e /dev/usb/lp0 ] ;
then
echo "An"
weiter=0
else
sleep $paus
weiter=1
fi
done
return
}
function Aus()
{
/usr/bin/sispmctl -f 1
echo "Aus"
return
}
function Drucken()
{
echo "Drucken"
function JobFertig()
{
if [ -e $spooldir/$jobhdatei ] ;
then
return 0
else
#Datei gel., fertig
return 1
fi
}
typeset -i zeit=$nachlaufzeit
function ZeitAbgelaufen()
{
if [ $zeit -le 0 ] ;
then
return 1
else
return 0
fi
}
function ZeitLaeuft()
{
sleep $zeiteinheit
zeit=`expr $zeit - $zeiteinheit`
return
}
typeset -i paus=0
typeset -i fertig=0
while [ $fertig -eq 0 ] ;
do
JobFertig
fertig=$?
sleep $paus
echo "Sleeping"
done
typeset -i abgelaufen=0
while [ $abgelaufen -eq 0 ] ;
do
ZeitLaeuft
ZeitAbgelaufen
abgelaufen=$?
echo "Nachlauf"
done
function WeitereJobs()
{
typeset -i anzahl=`ls -l $spooldir | wc -l`
anzahl=`expr $anzahl - 2`
return $anzahl
}
WeitereJobs
typeset -i weitere=$?
if [ $weitere -eq 0 ] ;
then
Aus
return 1
else
return 0
fi
}
if [ $# = 0 ]
then
echo "SIS-PM \"SIS-PM Powered Printer\" \"SIS-PM Printer Port\""
exit 0
fi
An
Drucken >> druck_log&
#Usage: usb job-id user title copies options [file]
export DEVICE_URI="usb://Brother/MFC-8420"
exec -a ${DEVICE_URI} /usr/lib/cups/backend/usb "$@"
More information about the cups
mailing list