El Tue, Sep 13, 2016 at 08:31:50PM +0200, Narcis Garcia deia: > Hola; > > He aprofitat la característica de CUPS per crear una impressora virtual > i fer-la treballar amb un programet (script) a /etc/cups/interfaces/ > La meva intenció és que, quan l'usuari trii imprimir amb aquesta > impressora virtual, transferir el document a un ordinador remot (~scp) i > executar la instrucció «lp document» a l'ordinador remot per a què > s'imprimeixi localment des d'allà. > > Això implica pel cas un programet com a: > /etc/cups/interfaces/Epson1
Sense veure l'script costa (més) de dir... > El qual s'executa quan CUPS rep l'orddre d'imprimir per la impressora > «Epson1», i es fa com a usuari «lp». > El programet fa la còpia del document, però en intentar executar ssh > (+expect per posar contrasenya) diu: > > You have too many files are open. Close some files or increase your > per-process descriptor limit. > Aquest error és del client o ve del servidor ? Massa fitxers oberts no em quadra amb problemes de permissos ni tal. És com si hi hagués alguna crida recursiva descontrolada, o si provés infinites vegades d'obrir algun fitxer sense tancar-lo. > Com que penso que el límit de 800.000 a nivell de sistema ja és gran, i > no sé com modificar-ho per «lp»*, doncs intento que el programet es > cridi a sí mateix com a un usuari normal: > sudo -n -u UnUsuari "$0" > /etc/security/limits.conf ? man bash i buscar ulimit ? > I he hagut d'afegir una línia amb visudo**: > lp ALL = (%users) NOPASSWD: /etc/cups/interfaces/* > > Penso que això significa: «L'usuari lp de tots els hosts poden actuar > com a un membre del grup users sense contrasenya per executar allò que > hi hagi a /etc/cups/interfaces/» Però CUPS surt de tots els grups menys el primari entre el fork() i el exec() de l'script, vols dir que cola ? https://github.com/apple/cups/blob/master/scheduler/process.c#L736 [...] En qualsevol cas, el que no entenc és perquè no pot el servidor compartir la impressora per CUPS mateix i accedir-hi el client per IPP. Llavors tindries més informació de l'estat del treball i tot això, no ?