Codice: Seleziona tutto
joe@machine~: stampa.sh doc.pdf
Ora, siccome la stampante in questione non c'è stato verso di gestirla nativamente da Linux, ho messo in piedi un sistema quantomeno "esotico":
- si avvia una VM con windows via libvirt
- sul sistema guest è in ascolto una sorta di servizio, in realtà uno script batch, che se trova uno o più PDF in una directory di "fake spool" li invia alla stampante
- la directory di fake spool fa parte di una directory condivisa in rete con la macchina host
In pratica il mio comando "stampa.sh documento.pdf" dovrà:
- avviare libvirt
- avviare la VM windows
- agganciare la stampante (precedentemente accesa e collegata ovvio) via redirezione USB
- montare la directory condivisa (questo manualmente lo faccio da utente semplice avendo predisposto /etc/fstab)
- copiare il documento da stampare nella directory di fake spool
Vediamo i comandi che lancio a mano solitamente:
Codice: Seleziona tutto
su -
/etc/rc.d/rc.libvirt start
virsh start win7
virsh attach-device win7 --file epson-dx4400.xml --live
Codice: Seleziona tutto
sudo /sbin/mount /home/joe/sharelibvirt
cp documento.pdf sharelibvirt/spool
La domanda che volevo porre qui era la seguente:
come posso fare a creare lo script stampa.sh che esegua tutte queste operazioni?
La domanda può sembrare banale, ma l'aspetto "insidioso" è che vorrei lanciarlo da utente semplice. Ovviamente qualcosa richiederà sudo, ma chiedo soprattutto perché in passato con libvirt avviata via sudo avevo riscontrato dei problemi, probabilmente riguardanti permessi vari che ora non ricordo.
Se avete qualche dritta anche e soprattutto in base alla vostra esperienza con libvirt...
Grazie in anticipo!
