Portál AbcLinuxu, 11. května 2025 10:41
Distro Ubuntu 8.04 a GNOME
Jsou nastaveny dvě tiskárny (3 s PDF tiskárnou)
Počítač je notebook a pohybuje se na dvou místech na každém z nich je přístupná jen jedna tiskárna. V místě kde je 2. zmiňovaná sdílená není problém, ale v 1. místě kde je k dispozici jen HPčko a ne ta sdílená dochází například v Adobe Readeru při tisku k vytuhnutí Readeru - neotevře ani dialog tisku nebo v "Konfigurace tiskárny" kliknutí na tuto sdílenou tiskárny dojde k zmrznutí aplikace na cca. 5min a další "freeze" problémky.
Problém je, že se TO asi snaží najít i tu sdílenou. Pokud sdílenou tiskárnu odstraním vše je super.
Obě sítě jsou rozdílné 192.168.0.x a 192.168.1.x a masky 255.255.255.0.
Co s tím ?
Nikdo ? :(
Je to celé o tom, že „remote“ tiskárna sice není výchozí, ale byla naposledy použita. A jakmile tomu tak je, tak zmrazí dialog a tím pádem celou aplikaci (Acrobat Reader, Nastavení „Tiskány“ při kliknutí na remote tiskárnu atd.).
V momentě kdy se odpichnu od sítě 192.168.1.x, tak již se nic nemrazí, vše lze normálně vybírat tiskárny nastavení apod., jakmile se připíchnu zpět k sítě je to tam zas.
Musím „zajet“ do místa sítě 192.168.0.x otevřít aplikaci (acrobat readera) a dát tisk třeba do PDF, když se vrátím zpět do sítě 192.168.1.x je to ok.
Některé aplikace, prostě se snaží za každou cenu s nedostupnou tiskárnou komunikovat a nikdo asi neodpovídá a na to nejsou zařízené :(.
Tak nic odpovím si sám, evidentně to řeší více lidí zvláště na Ubuntu, ale žádné rozumné řešení :{
Zjistil jsem, že některé aplikace jsou tak blbé (nebo něco někde dál) – jakmile je tiskárna naposledy použitá, tak při volbě „Tisk“ se s ní snaží komunikovat. Celý problém je, že tam není nějaký timeout.
Vybádal jsem, že když to REJECTnu na firewallu je to jakž takž ok (trvá to asi cca 2-5sec).
Proto jsem napsal tento přiložený script „reject-remote-printers“, který vloží pomocí iptables pravidlo na odcházející packety.
Dole ve scriptu je něco jako: processByPing 192.168.0.116 631 00:02:17:D4:1B:32
a lze to tam dát opakovaně pro různé tiskárny a sítě.
processByPing je fce a má tři pramatry, IP tiskárny(print serveru), port (obvykle 631) a MAC adresy tiskárny (print serveru)
Script si pingne na uvedenou adresu (síť. tiskárny nebo tiskového serveru) pak si zjistí jeho MAC adresu a pokud to sedí, tak pravidlo pomocí iptables odstraní. Pokud to neraguje na ping pravidlo vloží (dotazy budou REJECTnuty).
Na zmiňovaném notebooku se používá WICD pro připojení a tento manager umožňuje provádět script po připojení i odpojení a provádí se s „root“ oprávněním.
Takže script je vložen:
#!/bin/bash sleep 3 /plnacesta/reject-remote-printers exit 0a „run-wicd-off-reject-remote-printers“
#!/bin/bash /plnacesta/wicd-off-reject-remote-printers & exit 0a „run-wicd-off-reject-remote-printers“ jsem dal do scriptu při odpojení
ALL ALL=NOPASSWD: /plnacesta/reject-remote-printers
čímž to může vyvolat i uživatel bez nutnosti zadávat heslo.No a fčil již se zrmzáním (některých aplikací) není problém.
Ale i přesto bych uvítal nějaké řešení, řešící problém tam kde vzniká, né až na barikádách :)
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.