【问题标题】:Run a script when user press print, and not start spooling before script ends (linux, cups)当用户按下打印时运行脚本,并且在脚本结束之前不开始假脱机(linux,cups)
【发布时间】:2013-12-19 14:21:12
【问题描述】:

我需要做的是执行一个 python 程序/脚本与用户按下打印一起执行,并且在该程序退出之前不要让打印作业假脱机。

原因是打印驱动程序不是开源的,我需要更改用户设置(在这种情况下是部门 ID 和密码),通常是每个用户,但因为这是一个信息亭(不同的用户使用同一个帐户)我需要确保在打印作业被假脱机之前重置并提示用户,这样不同的用户就不会互相拿起其他作业。

我已经创建了一个程序来处理设置,我只需要一种方法来启动它,并且在用户完成程序/设置之前不要让假脱机作业启动。

我已尝试搜索/谷歌此问题,但无法真正找到答案,我是否需要先通过杯子过滤器来处理这项工作,或者他们是否有更聪明的方法来处理这个问题?

【问题讨论】:

    标签: python linux printing cups


    【解决方案1】:

    我为我的问题找到了完美的解决方案。 tea4cups,它充当杯子的包装纸。 使用tea4cups prehook 解决了我的问题。

    我遇到了一些问题,所以如果有人走同样的路,我会在此处注明。

    1. tea4cups 基于 python2,我有 python3 作为标准库,这给出了一些意想不到的错误,例如 cups 日志中的“错误密钥”。 为了解决这个问题,我编辑了“/usr/lib/cups/backend/tea4cups”并改变了环境:

    #! /usr/bin/env python

    进入:

    #! /usr/bin/env python2

    1. 我的 prehook 需要启动一个 python 程序,因为它使用 x 显示,这不是开箱即用的。而且这个程序需要以实际提交打印作业的用户身份启动。为了让这两件事发挥作用,我必须按如下方式编写 prehook:

    prehook_popUp : su $TEAUSERNAME -c "DISPLAY=:0.0 python /usr/share/candepid/PopUp.py"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-18
      • 2021-12-20
      • 1970-01-01
      • 2018-07-19
      • 1970-01-01
      • 2019-10-02
      相关资源
      最近更新 更多