J'ai besoin de savoir à chaque fois qu'un travail d'impression Mac est créé/terminé, plus quelques informations sur ce travail (ce qui a été imprimé, pages, copies, etc.). La meilleure méthode que j'ai trouvée jusqu'ici est d'utiliser kqueue() sur/var/spool/cups/puis d'analyser les fichiers C##### à mesure qu'ils sont créés, mais je me demande s'il y a un meilleur moyen.Comment puis-je savoir quand un travail d'impression CUPS a été complété plus d'informations sur ce travail?
Répondre
Je penserais à créer un filtre que vous pouvez mettre dans le pipeline CUPS qui recueille cette information et la stocke pour vous (disons dans une base de données). Ensuite, vous pouvez accéder à la base de données pour obtenir l'information en utilisant un mécanisme d'accès à la base de données standard. Fondamentalement, le filtre est juste un programme en ligne de commande qui reçoit un certain nombre de paramètres de CUPS et doit lire l'entrée sur stdin et l'écrire sur stdout. Vous pouvez trouver plus d'informations au http://www.cups.org/documentation.php/api-filter.html.
J'aime beaucoup cette idée. Des idées sur comment je pourrais dire quand un travail a été annulé en utilisant cette route? –
Je pense qu'il existe des méthodes pour communiquer avec le backend. Je n'ai pas réellement mis en place un filtre pour CUPS, bien que j'ai travaillé sur certains filtres LPR dans la journée. Voir la section sur la communication avec le backend. Vous devriez travailler avec un backend qui écrit l'état du périphérique sur le filtre, mais je pense que la plupart le font pour que le logiciel de comptage de pages puisse facilement s'y connecter et faire ce qu'il faut. – tvanfosson
Excellent, merci beaucoup. –
Avez-vous déjà regardé ce que le fichier page_log vous fournit? Il y a une page de man fournissant des détails sur son format. Les versions récentes de CUPS vous permettent de configurer la quantité d'informations enregistrées dans ce fichier.
Je n'avais pas, merci de le signaler. –
- 1. Comment savoir ce qui a été cliqué?
- 2. pthreads - comment paralléliser un travail
- 3. Comment puis-je savoir quand un fichier a été récemment remplacé dans un dossier FTP?
- 4. Comment savoir quand une table Oracle a été mise à jour la dernière fois
- 5. Est-ce que waitpid bloque sur un travail arrêté?
- 6. Comment puis-je savoir quand .Net System.Diagnostics.Process a été exécuté avec succès ou a échoué?
- 7. Comment puis-je savoir quand le texte d'un JComboBox modifiable a été modifié?
- 8. wpf savoir quand le modèle a changé
- 9. Le travail de l'Agent SQL Server échoue avec "L'étape a été annulée (arrêtée) suite à une demande de travail d'arrêt"
- 10. Comment savoir si un formulaire a été modifié
- 11. Les threads de travail arrêtent leur travail après un moment
- 12. Recherche dans le journal des événements pour savoir quand un programme a été désinstallé
- 13. Améliorer notre environnement de travail au travail
- 14. Comment définir Priority \ Pool sur un travail Hadoop Streaming?
- 15. Comment savoir quel compilateur a été utilisé: g77 ou gfortran
- 16. comment vérifier quand le champ enter/return a été activé?
- 17. Comment savoir lorsqu'une fonction d'une autre classe a été appelée
- 18. SQL Server 2005 - en cliquant sur le travail-> Propriétés donne la fenêtre "Nouveau travail"
- 19. Quand IIS recycle-t-il le processus de travail?
- 20. Comment faire ce travail? RewriteCond% {ENV: UNIQUE_ID}!% {QUERY_STRING}
- 21. Faire ce code pour l'image resize() travail
- 22. VCRedist - comment puis-je savoir si elle a été exécutée?
- 23. Comment savoir quelle touche SHIFT a été enfoncée?
- 24. MessageWindow - Comment puis-je savoir s'il a été détruit?
- 25. Comment puis-je savoir si "abort()" a été appelé sur un XMLHTTPRequest
- 26. Comment savoir quand il y a trop de connexions SQL?
- 27. Django inlines, comment sais-je ce qui a été édité?
- 28. Comment savoir quelle fonction de hachage a été utilisée?
- 29. Y a-t-il un moyen de savoir si un email a été ouvert?
- 30. Comment puis-je détecter quand l'appel sortant a été accepté?
Cela pourrait obtenir plus de réponses sur serverfault.com –