• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

dcop Aufruf aus atjob

taki

Advanced Hacker
Hallo.
Eigentlich ist es eher eine KDE-Frage als eine Konsolenfrage, aber im KDE-Forum weiß ich, dass ich keine Antwort bekommen werden. Hier wage ich auf Hilfe zu hoffen...

Ich möchte aus einem atjob heraus einen dcop Aufruf starten. Die Frage ist, was alles dazu erforderlich ist. Der Pfad zum dcop Executable alleine reicht nicht.

Folgenden Aufruf möchte ich von Kalva an das Ende der Befehlskette zum Aufnehmen eines Spielfilmes hängen:

"/opt/kde3/bin/dcop kalva DCOP_kalva DcopMovieManagerRead"

Aufgerufen in der Konsole löst dieser Befehl das Einlesen der als atjob eingetragenen Spielfilmaufnahmen aus. Der dcop Aufruf soll erreichen, dass nach einer Aufnahme die Ansicht im laufenden Kalva aktualisiert wird, da ja der atjob nun ausgeführt wurde und somit nicht mehr gespeichert ist.

Leider kann atd aber den dcop server nicht erreichen: Folgende Mail sendet atd:

Betreff: Output from your job jobid
ERROR: Couldn't attach to DCOP server!

Offenbar fehlen wichtige Umgebungsvariablen.
 

TeXpert

Guru
das Problem ist, dass dcop eine aktuelle KDE-Session braucht, ich muss mal in meinen Bookmarks & Notizen suchen das Problem hatte ich auch schon mal, Du musst mit --session die Ziel-Session angeben, d.h. die Session muss laufen etc.

schau mal in die Manpage, Stichworte sind --session, --user (bzw. --all-users)
 
OP
taki

taki

Advanced Hacker
Ich bin etwas weiter gekommen. Mit folgendem Befehl wird der DCOP-Aufruf ausgeführt:

Code:
taki@rivendell:~> echo "/opt/kde3/bin/dcop --user taki --all-sessions kalva
DCOP_kalva DcopMovieManagerRead" |at now
warning: commands will be executed using /bin/sh
job 185 at 2005-09-04 00:58
taki@rivendell:~>

Leider wird eine Fehlermeldung erzeugt, die atd per Mail zustellt. Ein Test ohne at zeigt, dass diese Fehlermeldung auch beim Aufruf in der Konsole entsteht.

SocketUNIXConnect: Cannot connect to non-local host www.suse.de
DCOPClient::attachInternal. Attach failed Could not open network socket
SocketUNIXConnect: Cannot connect to non-local host www.suse.de
DCOPClient::attachInternal. Attach failed Could not open network socket
ERROR: Couldn't attach to DCOP server!

Scheint SuSE spezifisch zu sein. Aber was bedeutet es und wie bekomme ich das weg.
 

TeXpert

Guru
ich würde Schrittweise vorgehen:

1. testen ob dcop funktioniert, d.h. nimm einen dcop-call, der auf der Shell funktioniert (nich tvon Deinem Tool) und teste den dann über at

wenn das klappt, dann evtl. noch mal in die Sourcen von kalva gehen

2. wenn das nicht klappt hmmm dann erst mal kde pflegen ;)
 
OP
taki

taki

Advanced Hacker
Danke, TeXpert für Deine Mühe, aber ich glaube, Du hast mein letztes Posting nicht gelesen.
TeXpert schrieb:
ich würde Schrittweise vorgehen:

1. testen ob dcop funktioniert, d.h. nimm einen dcop-call, der auf der Shell funktioniert (nich tvon Deinem Tool) und teste den dann über at
Der DCOP-Aufruf klappt ja mit der --user Option, sowohl in der Konsole als auch mit at. Er liefert nur in beiden Situationen diese häßliche Fehlermeldung. Was hat ein DCOP Aufruf mti www.suse.de zu tun???

TeXpert schrieb:
wenn das klappt, dann evtl. noch mal in die Sourcen von kalva gehen

2. wenn das nicht klappt hmmm dann erst mal kde pflegen ;)
Hilft mir nicht weiter.
 

TeXpert

Guru
doch ich hab Deinen Post gelesen, aber ich verstehe die Fehlermeldung spontan auch nicht ;) daher mein Tipp, teste ob die dcop-Aufrufe bei anderen Programmen mit at funktionieren, wenn ja dann scheint da bei kalva was verbogen zu sein, wenn sie dann auch nicht funktionieren muss man bei kde suchen...

ich hab jetzt mal folgendes ausprobiert:

Code:
echo "dcop --user TeXpert --all-sessions konsole-6944 konsole-mainwindow#1 setShown true" | at now
bzw. setShown false

und das funktioniert wunderbar, d.h. darauf wollte ich hinaus, teste also mal so eine Trivialität, wenn das geht musst Du noch mal in den kalva Code schauen...
 
OP
taki

taki

Advanced Hacker
Das Ergebnis war wie zu erwarten:

taki@rivendell:~> dcop --user taki --all-sessions konsole-6381 konsole-mainwindow#1 setShown true
SocketUNIXConnect: Cannot connect to non-local host www.suse.de
DCOPClient::attachInternal. Attach failed Could not open network socket
SocketUNIXConnect: Cannot connect to non-local host www.suse.de
DCOPClient::attachInternal. Attach failed Could not open network socket
ERROR: Couldn't attach to DCOP server!
taki@rivendell:~>

Und

taki@rivendell:~> echo "dcop --user taki --all-sessions konsole-6381 konsole-mainwindow#1 setShown true" | at now
warning: commands will be executed using /bin/sh
job 190 at 2005-09-05 22:21

liefert folgende Mail ab:

SocketUNIXConnect: Cannot connect to non-local host www.suse.de
DCOPClient::attachInternal. Attach failed Could not open network socket
SocketUNIXConnect: Cannot connect to non-local host www.suse.de
DCOPClient::attachInternal. Attach failed Could not open network socket
ERROR: Couldn't attach to DCOP server!

Nichts anderes hätte ich erwartet. Der DCOP-Aufruf wird ausgeführt (!), aber diese dämliche Fehlermeldung wird ausgegeben. Ich denke, damit kann man leben. Das ist weniger nervend, als wenn eine Spielfilmaufnahme aus der atq wegfällt ohne dass Kalva das merkt. Es ist einfach blöd, wenn Kalva die Aufnahme weiter im Spielfilmmanager anzeigt. Schön wäre es aber wohl, diese Meldung nicht gemailt zu bekommen.
 

TeXpert

Guru
dann ist IMHO bei deiner (bei Suses) KDE-installation etwas seltsam... denn wieso sollte dcop an Suse funken, dass ist ja wie bei Bill Gates.

Das würde ich mal versuchen zu eruieren (evtl. mal ein grep über /etc und /var bzgl. www.suse.de) machen.
 
Oben