lpr: cannot connect to X server

  • Thread starter Thread starter g-spot
  • Start date Start date
G

g-spot

Guest
Liebe Profis,

ich habe ein Problem mit meinem X-Server unter SuSE-Linux, das erst nach der Installation eines Treibers für den Drucker Samsung CLP-510 aufgetreten ist.
Möchte ich vom Client aus bspw. den Befehl "lpr -P D10435 /etc/hallo.txt" absetzen, erscheint:

lpr: cannot connect to X server

Aha, der X server läuft nicht mehr. Also habe ich versucht, diesen über diese Befehle zu starten:

# startx bzw. X bzw. xinit

Es kommt immer die Meldung:

Fatal server error:
Server is already active for display 0
If this server is no longer running, remove /tmp/.X0-lock
and start again.


When reporting a problem related to a server crash, please send
the full server output, not just the last messages.
Please report problems to http://www.suse.de/feedback.

Xlib: connection to ":0.0" refused by server
Xlib: Invalid MIT-MAGIC-COOKIE-1 key
giving up.
xinit: unable to connect to X server
xinit: No such process (errno 3): Server error.

Danach habe ich die Datei /tmp/.X0-lock umbenannt, doch es klappte immer noch nicht.
Die Datei /etc/X11/XF86Config wurde seit Monaten nicht verändert.
Die Fehlermeldung "Xlib: connection to ":0.0" refused by server" deutet auf ein Rechte-Problem hin.
Ich habe also mal die Datei ~/.Xauthority gecheckt bzw. den Befehl # xauth list eingegeben, der mir folgendes zeigt:

sap08x:1 MIT-MAGIC-COOKIE-1 016fc4c7aa17950caf6e6a1ef26a68b4
sap08/unix:1 MIT-MAGIC-COOKIE-1 016fc4c7aa17950caf6e6a1ef26a68b4
sap08/unix:0 MIT-MAGIC-COOKIE-1 32cc7a28c31e3e65dd740c0668b85568
sap08:0 MIT-MAGIC-COOKIE-1 32cc7a28c31e3e65dd740c0668b85568

Ich bin nah dran, da diese Meldung auch im Protokoll gelistet wird. Die Eingabe von

# echo $DISPLAY

bringt nichts, die Variable ist leer.

# echo $DISPLAY

Ich habe die Variable testweise mal manuell gesetzt:

# DISPLAY=:0.0; export DISPLAY
# echo $DISPLAY
:0.0

Nun wieder der Aufruf:

# lpr
Xlib: connection to ":0.0" refused by server
Xlib: Invalid MIT-MAGIC-COOKIE-1 key
lpr: cannot connect to X server :0.0

Dann habe ich noch versucht, diesen Befehl abzusetzen:

# xhost +$HOSTNAME
Xlib: connection to ":0.0" refused by server
Xlib: Invalid MIT-MAGIC-COOKIE-1 key
xhost: unable to open display ":0.0"

Muss ich ggf. einen Schlüssel neu generieren, da in der Authority-Datei verschlüsselte Kennwörter stehen? Und wieso wird der beim Installieren von Druckern überhaupt berührt?

Hier gebe ich erst mal auf und möchte euch fragen, wo der Hase im Pfeffer liegt bzw. warum der X-Server nicht mehr funktioniert.

Meine genaue SuSE-Linux-Version ist i. Ü. diese:

Linux version 2.6.5-7.244-smp (geeko@buildhost) (gcc version 3.3.3 (SuSE Linux)) #1
SUSE LINUX Enterprise Server 9 (x86_64)
VERSION = 9
PATCHLEVEL = 3

Habt vielen Dank für eure Hilfe.
g-spot
 
1. haeh? seit wann braucht lpr einen x-server??
kannst du mit
Code:
% echo hallo >/dev/lpt0
drucken?

2. probier mal folgendes einzugeben:
Code:
% xhost +
% export DISPLAY=:0.0
% lpr...
 
SuSE-Linux
Ähm, dir ist klar, dass dies ein BSD-Forum ist - speziell noch der FreeBSD-Bereich - und Linux und BSD komplett unterschiedliche Systeme sind?
 
Ähm, dir ist klar, dass dies ein BSD-Forum ist - speziell noch der FreeBSD-Bereich - und Linux und BSD komplett unterschiedliche Systeme sind?

Hallo, ja, ich weiß, sorry, über Google fand ich in diesem Forum ähnliche Beiträge zum X-Server. Werde in Zukunft aufpassen.

VG
g-spot
 
1. haeh? seit wann braucht lpr einen x-server??
kannst du mit
Code:
% echo hallo >/dev/lpt0
drucken?

2. probier mal folgendes einzugeben:
Code:
% xhost +
% export DISPLAY=:0.0
% lpr...


Hallo, dettus,

vielen Dank für deine wahnsinnig schnelle Antwort. Mir wurde von einem ander User mitgeteilt, dass ich hier falsch bin, aber trotzdem noch mal meine Antwort.

An dem Linux-Server hängt direkt kein Drucker dran. Über das Netzwerk sind mit dem Server Clients verbunden, die aus der Business-Anwendung SAP über CUPS drucken. Seit gestern steht in den Druckprotokollen immer diese Fehlermeldung. Ich selbst setze den Befehl lpr über PUTTY oder TELNET von meinem Client-Rechner aus auf dem Server ab. Deswegen X-Server. Es hat weniger mit CUPS als vielmehr mit dem X-Server zu tun. Nun werde ich dieses Thema wegen Nutzerbeschwerden womöglich schließen und direkt in SuSE-Foren posten müssen. Schade.

Der Vollständigkeit halber:

# xhost +
xhost: unable to open display ""
# echo $DISPLAY
# export DISPLAY=:0.0
# echo $DISPLAY
:0.0
# lpr
Xlib: connection to ":0.0" refused by server
Xlib: Invalid MIT-MAGIC-COOKIE-1 key
lpr: cannot connect to X server :0.0

Danke und viele Grüße
g-spot
 
Öh, das klingt alles andere als schön. lpr braucht kein X.
Prüf dringend, ob du Besuch hast. Also chkrootkit, Prüfsummen der lpr-binary checken usw.

Wenn dem so ist und du eh neu installieren musst, kannst du ja mal ein BSD testen, dann ist das Topic hier auch wieder richtig ;-)
 
Öh, das klingt alles andere als schön. lpr braucht kein X.
Prüf dringend, ob du Besuch hast. Also chkrootkit, Prüfsummen der lpr-binary checken usw.

Wenn dem so ist und du eh neu installieren musst, kannst du ja mal ein BSD testen, dann ist das Topic hier auch wieder richtig ;-)


Hallo, troll,

das System scheint sauber zu sein. CHKROOTKIT findet nix. Ich habe noch die .xsession-errors gepostet. Irgendetwas hat mir das X-Terminal-Display zerschossen, der Fehler kommt nicht nur bei "lpr".
Ich muss SuSE-Linux verwenden, das hat geschäftliche Gründe. Ich kann auch leider nicht ohne Weiteres testen, da dies ein SLES-9.0-Datenbankserver ist, auf dem remote Nutzer über GUI-Verbindung arbeiten. Auch eine Neuinstallation von SuSE kommt absolut nicht in Frage. Ich muss das so hinbekommen.

Besten Dank

# cat .xsession-errors
xrdb: No such file or directory
xrdb: Can't open display ':0'
xset: unable to open display ":0"
xset: unable to open display ":0"
xset: unable to open display ":0"
xsetroot: unable to open display ':0'
xset: unable to open display ":0"
xset: unable to open display ":0"
ksplash: cannot connect to X server :0
kded: cannot connect to X server :0
DCOP aborting call from 'anonymous-6807' to 'kded'
kded: ERROR: Communication problem with kded, it probably crashed.
kdeinit: Can't connect to the X Server.
kdeinit: Might not terminate at end of session.
kcminit: cannot connect to X server :0
knotify: cannot connect to X server :0
DCOP aborting call from 'anonymous-6810' to 'knotify'
ERROR: Communication problem with knotify, it probably crashed.
ksmserver: cannot connect to X server :0
startkde: Shutting down...
klauncher: Exiting on signal 1
startkde: Running shutdown scripts...
startkde: Done.
sap08:~ # cat .xsession-errors
xrdb: No such file or directory
xrdb: Can't open display ':0'
xset: unable to open display ":0"
xset: unable to open display ":0"
xset: unable to open display ":0"
xsetroot: unable to open display ':0'
xset: unable to open display ":0"
xset: unable to open display ":0"
ksplash: cannot connect to X server :0
kded: cannot connect to X server :0
DCOP aborting call from 'anonymous-6807' to 'kded'
kded: ERROR: Communication problem with kded, it probably crashed.
kdeinit: Can't connect to the X Server.
kdeinit: Might not terminate at end of session.
kcminit: cannot connect to X server :0
knotify: cannot connect to X server :0
DCOP aborting call from 'anonymous-6810' to 'knotify'
ERROR: Communication problem with knotify, it probably crashed.
ksmserver: cannot connect to X server :0
startkde: Shutting down...
klauncher: Exiting on signal 1
startkde: Running shutdown scripts...
startkde: Done.
 
okay, wenn du nur mit ssh oder telnet auf den server gehst dann bringt dir das umbiegen der display variable auf :0.0 nichts.

da musst du dann schon sowas wie 192.168.23.42:0.0 eintragen, mit einer ip-adresse auf der ein x-server laeuft. und auf der du xhost+ gemacht hast.
 
okay, wenn du nur mit ssh oder telnet auf den server gehst dann bringt dir das umbiegen der display variable auf :0.0 nichts.

da musst du dann schon sowas wie 192.168.23.42:0.0 eintragen, mit einer ip-adresse auf der ein x-server laeuft. und auf der du xhost+ gemacht hast.


Das habe ich getan. Brachte aber auch nix. Ich habe auch xhost + als Nicht-Root ausgeführt. ("access control disabled, clients can connect from any host") Wenn ich mich direkt am Server über das Terminal anmelde, egal ob root oder ein anderer, dann kann ich lpr zumindest ausführen. Die DISPLAY-Variable lautet jeweils :0.0 . Mache ich dann ein "su - user" auf einen anderen Nutzer oder ein "su -" auf root, ist die Variable leer und lpr meldet "lpr: cannot connect ...". Wenn ich ein lpr von einem Client-PC über ssh ausführe, geht es mit keinem der Nutzer. Wir haben einen speziellen Linux-Nutzer, der die Workprozesse der installierten Software managed. Der druckt quasi die Aufträge aus der GUI-Software mittels lpr. Da muss doch irgendwas im ENVIRONMENT zerbröselt sein oder was mit der AUTHORITY nicht stimmen?

VD
 
:0.0 ist die kurzform fuer localhost:0.0. oder 127.0.0.1:0.0

du musst vor den doppelpunkt schon einen rechnernamen oder eine ip-adresse setzen, auf der ein x-server rennt. und auf dem du xhost + eingegeben hast.
 
:0.0 ist die kurzform fuer localhost:0.0. oder 127.0.0.1:0.0

du musst vor den doppelpunkt schon einen rechnernamen oder eine ip-adresse setzen, auf der ein x-server rennt. und auf dem du xhost + eingegeben hast.


Das hatte ich natürlich getan, aber nicht explizit erwähnt. Ich muss am Montag noch mal zu den Servern rennen und gucken, was mir der Befehl

# startx

sagt. Wenn ich über ssh den Befehl # ps -ef | grep xinit ausführe, sagt er mir zwar, das der X-Server liefe,

root 20073 20039 0 15:52 ? 00:00:00 ssh-agent /etc/X11/xinit/xinitrc

aber ein lpr über ssh bringt mir trotz richtiger (und exportierter) IP immer den bekannten Fehler.

lpr: cannot connect to X server ip-adresse:0.0

VD + VG
 
Back
Top