2012-04-04 5 views
2

Für einen Kunden, schrieb ich eine Middleware, um ihn den seriellen Anschluss oder die serielle Schnittstelle über das Netzwerk mit einem Ethernet-Adapter zugreifen und Daten mit einem Webservice lesen.Block Linux von USB-Barcode-Scanner-Zeichen an die Konsole senden

Er bat vor kurzem, auch Unterstützung für das Lesen von Daten aus einem Barcode-Scanner hinzuzufügen, Sachen, die Leseereignisse direkt vom Gerät implementiert haben (/ dev/input/eventX oder/dev/input/by-id/xyz) .

Der Barcode-Scanner ist direkt am Server angeschlossen und die Daten werden über einen Webservice, der von meinem Webserver bereitgestellt wird, gelesen.

Alles funktioniert gut, außer dass Barcodes von der Linux-Konsole empfangen werden!

Wie kann ich das System blockieren (stoppen), um Daten an die Konsole zu senden?

HINWEIS: keine X11/Xorg oder sonst nichts, der Server ist eine Konsole nur Maschine! Barcodes werden von javascript (jsonp) gelesen, das auf einem Android-Tablet ausgeführt wird

+0

Es kann hilfreich sein, wenn es ein bisschen mehr Code zum Arbeiten. Lassen Sie mich jedoch eine naheliegende Lösung vorschlagen: Haben Sie versucht, den stdout-Dateideskriptor [close (0)] zu schließen? – Bhaskar

+1

@BhaskarUpadhyayula stdout ist fd 1. – FatalError

+0

@FatalError danke für den Hinweis auf den Fehler. – Bhaskar

Antwort

0

Es hängt von Ihrer Linux-Distribution ab. Auf Redhat/Centos können Sie Konsolenmeldungen ausschalten oder filtern, indem Sie /etc/syslog.conf und/etc/sysconfig/syslog bearbeiten.

+0

danke für den Vorschlag, auf diese Weise kann ich fehlgeschlagene Auth-Protokolle überspringen, aber ich möchte sie überhaupt vermeiden: \ –

1

Überprüfen Sie /etc/inittab, um zu sehen, ob ein getty auf dieser seriellen Schnittstelle läuft. Wenn dies der Fall ist, kommentieren Sie die Zeile aus, indem Sie ein als erstes Zeichen einfügen.

+0

LOL, dabei werde ich meine einzige Möglichkeit, auf das System im Falle von Problemen (ich ' Ich arbeite an Alix Boards). Auf keinen Fall :) –

+0

Guter Plan. Keine fairen Einschränkungen hinzufügen _after_ Sie haben die Frage gestellt! :-) –

+0

Nun, es ist keine neue Einschränkung :) Wenn Sie getty töten, können Sie nicht auf das System zugreifen :) Aber am Ende werde ich wahrscheinlich auth Protokollierung deaktivieren –

0

Vermutlich gelangen die Barcodes zur Konsole, entweder weil Sie den Serverprozess von einem Startskript ausführen und es an stdout/stderr ausgibt, oder sie sind eine Art Systemprotokoll- oder Kernel-Nachrichten.

Unter der Annahme, sie sind die Standardausgabe finden, wo der Server in der Startskripts ausgeführt wird, und die Ausgabe umleiten in Datei oder/dev/null, zB:

noisy-server-cmd >/dev/null 2>&1 & 
+0

Barcodes bekommt die Konsole nur, weil es ist Als ein USB-Keyboad und es ist das System selbst, das die Barcodes an die aktive Konsole sendet. Ich möchte das deaktivieren. –