Fedora 32 szerver saned

Fórumok

Sziasztok !

Van egy gépem amin F32 server edition fut. Csatlakozik hozzá egy szkenner amit hálózaton keresztül érnek el a felhasználók. A szerver időzítve működik automatikusan leáll illetve bekapcsol a megadott időpontban. Engedélyeztem a saned futtatását. 

Ha a szerver üzemel, és későbbi időpontban kapcsolom be a szkennert akkor a saned nem érzékeli az eszközt és a kliensek nem tudnak dolgozni vele. Ha a szkenner be van kapcsolva és utána indul el a szerver akkor minden rendben van a kliensek is elérik a szkennert működik minden. Tudtok abban segíteni, hogyan tudom a beállítani a szervert, hogy a saned érzékelje az utólag bekapcsolt szkennert?

Hozzászólások

Nem lehet erre valami scriptet vagy unit file-t írni? Gondolom, valahonnan csak kiderül, hogy nincs scanner, és akkor mondjuk percenként restart a saned-nek.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Milyen logok készülnek (a szerveren), amikor bekapcsolod a scannert?

szélsőségesen idealista, fősodratú hozzászólás

Ugye fenn van a sane-backends-daemon csomag, és gondolom, a saned.socket triggereli a service-t? Mert ha a systemd-n kívül csinálod, akkor még a Selinux-szal is meggyűlhet a bajod, mindamellett, hogy a szolgáltatások függősége sem kezelődik.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Szerintem minden fent van a mi kell

A SELinux  meg nem fut.

Triggers-ben látni azt a kliens ip-t ami  kapcsolódik a szerverhez, csak éppen nem működik :(

 

systemctl status saned.socket
● saned.socket - saned incoming socket
     Loaded: loaded (/usr/lib/systemd/system/saned.socket; enabled; vendor preset: disabled)
     Active: active (listening) since Fri 2020-10-23 19:30:55 CEST; 3min 3s ago
   Triggers: ● saned@0-192.168.1.43:6566-192.168.1.200:57482.service
     Listen: [::]:6566 (Stream)
   Accepted: 1; Connected: 1;
      Tasks: 0 (limit: 9298)
     Memory: 88.0K
        CPU: 1ms
     CGroup: /system.slice/saned.socket

server systemd[1]: Listening on saned incoming socket.

 

 

 

 

Az az érzésem, hogy a saned induláskor megnézi, milyen scannerei vannak, aztán ezt az állapotot ajánlja ki a klienseknek. Tehát gyanítom, az új scanner megjelenésekor kellene egy

systemctl restart saned.socket

parancs root joggal. Egyébként logokat néztél? Mond valami értelmeset arról, mi történik?

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Azt találtam ki kínomban :( , hogy adtam a cron-nak egy   

* * * * * sane-find-scanner

utasítást.

Nem valami elegáns, de mivel nincs  állandóan használva szkenner és a franc sem tudja ki mikor használná a szerver futási ideje alatt...  szóval jobb ötletem nem volt :(

De legalább műxik.

> Na ez nekem új terület utána kell olvassak.  :(

A scanner bekapcsolása előtt futtasd root-ként az

udevadm monitor

parancsot. A scanner bekapcsolásakor kiírja, hogy az udev mit tesz. Ebből kiderül, hogy az udev-es rész rendben-e van. Ha igen, akkor máshol kell keresni a problémát.

> Akkor ennél elegánsabb volna udev rule-ba írni,

Pontosan. De a szükséges udev rule a saned telepítésekor oda kellett volna kerüljön a helyére. Úgy általában, a udev rule-t igénylő szoftvereknek maguknak kell ezt intéznie.

OFF: pl. nálam a nut-server ilyen, és az tartalmazza az usb portos ups-ekhez szükséges .rules fájlt.

A sokadik vezérhangyát adtad. :)  Találtam egy dokumentumot a weben amiben azt taglalják, hogy egy bedugott USB eszköz érzékelésekor lefusson egy script. Remek, ha egy scriptet eltud indítani akkor egy programot is :))

Szóval létrehoztam egy fájlt 90-sane-find-scanner.rules  néven az /etc/udev/rules.d/  -ben

Tartalma: ACTION=="add", RUN+="/bin/sane-find-scanner"

 Eddig kétszer próbáltam előidézni a problémás helyzetet. Mind két alkalommal simán vette az akadályt ;)

Egy dolog aggaszt azért.  Nem okozhat esetleg problémát, hogy egy másik  USB eszköz érzékelését félreviszi?  Bár ez egy szerver, amibe nagyon nem dugdosunk USB-eszközöket, talán pendrive-ot néha. 

Ez ugyan nem scanner, de nézd meg ezt a két sort:

ATTR{idVendor}=="1443", MODE:="666"
ACTION=="add", ATTR{idVendor}=="0403", ATTR{manufacturer}=="Digilent", MODE:="666", RUN+="/usr/sbin/dftdrvdtch %s{busnum} %s{devnum}"

Szerintem az ATTR egy attribútum filter. Tehát ha ATTR{idProduct}=="1234", ATTR{idVendor}=="abcd" formában a helyes számokkal filterezel, akkor csak a scannered bedugására fog triggerelni. A vendor és product id-t pedig le tudod kérdezni bedugott scannernél az lsusb paranccsal.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE