web-dev-qa-db-ja.com

CUPSで印刷する前後にコマンドを実行しますか?

これはホームセットアップです。中央のプリンタサーバー(Linux)がキューを管理し、HP2430DTNが100Mbit /秒のイーサネットを介してキューに接続されます。プリンタは管理可能な電源に接続されています。シェルスクリプトはサーバー上のキューを監視し(lpstat -o)、ジョブがあるときにプリンターの電源を入れます。キューが10分間空になると、プリンターの電源がオフになります。

現在、このセットアップは混乱し、数週間後にプリンタなどを停止し、一般的に「それほど信頼性がありません」。ストッププリンターの変更方法はわかりましたが、次のようになります。

プリンターをオンにするスクリプトを実行し、キューを監視せずにカップから直接プリンターをオフにする方法はありますか?それはとてもクールだろう!

5
leto

私の提案は tea4cups を使用することです。

tea4cupsは、標準のCUPSバックエンドの汎用ラッパーとして機能します。これにより、実際のバックエンドを介してジョブを送信する前後に実行するコマンドを構成できます。

tea4cupsは、特に(任意の数の)コマンドの実行を許可しますbeforeジョブは送信されます:prehooks-1を終了するプリフックコマンドは、ジョブをキャンセルできます。

tea4cupsでは、(任意の数の)コマンドを実行することもできますafterジョブは送信されます:posthooks(exit -1のプリフックがジョブをキャンセルした場合を除く)。

プレフックは、パイプを介してポストフックにデータを送信できます。

tea4cupsはfiltersを実行することもできます(実際のバックエンドを介して実際のプリンターに送信する前に、印刷データを変更する場合があります)。

これからは、あなた自身の創造性だけが、このフレームワークでできることの限界になります。

5
Kurt Pfeifle