Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

dcop Aufruf aus atjob

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Antworten
taki
Advanced Hacker
Advanced Hacker
Beiträge: 974
Registriert: 30. Apr 2004, 17:40
Wohnort: Berlin

dcop Aufruf aus atjob

Beitrag von taki »

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.
SuSE 12.3 kernel 3.7.10-1.16-desktop, K Desktop Environment Version 4.10.5 r1 - Medion Titanium Aldi v. 03/2009
Benutzeravatar
TeXpert
Guru
Guru
Beiträge: 2166
Registriert: 17. Jan 2005, 11:22

Beitrag von TeXpert »

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)

Code: Alles auswählen

# to resolve all your problems, try this:
HOWTO='pack c5,41*2,sqrt 7056,unpack(c,H)-2,oct 115' && perl -le "print $HOWTO"
Ich beantworte keine Supportfragen per PM!
taki
Advanced Hacker
Advanced Hacker
Beiträge: 974
Registriert: 30. Apr 2004, 17:40
Wohnort: Berlin

Beitrag von taki »

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

Code: Alles auswählen

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.
SuSE 12.3 kernel 3.7.10-1.16-desktop, K Desktop Environment Version 4.10.5 r1 - Medion Titanium Aldi v. 03/2009
Benutzeravatar
TeXpert
Guru
Guru
Beiträge: 2166
Registriert: 17. Jan 2005, 11:22

Beitrag von TeXpert »

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 ;)

Code: Alles auswählen

# to resolve all your problems, try this:
HOWTO='pack c5,41*2,sqrt 7056,unpack(c,H)-2,oct 115' && perl -le "print $HOWTO"
Ich beantworte keine Supportfragen per PM!
taki
Advanced Hacker
Advanced Hacker
Beiträge: 974
Registriert: 30. Apr 2004, 17:40
Wohnort: Berlin

Beitrag von taki »

Danke, TeXpert für Deine Mühe, aber ich glaube, Du hast mein letztes Posting nicht gelesen.
TeXpert hat geschrieben: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 hat geschrieben: 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.
SuSE 12.3 kernel 3.7.10-1.16-desktop, K Desktop Environment Version 4.10.5 r1 - Medion Titanium Aldi v. 03/2009
Benutzeravatar
TeXpert
Guru
Guru
Beiträge: 2166
Registriert: 17. Jan 2005, 11:22

Beitrag von TeXpert »

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: Alles auswählen

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...

Code: Alles auswählen

# to resolve all your problems, try this:
HOWTO='pack c5,41*2,sqrt 7056,unpack(c,H)-2,oct 115' && perl -le "print $HOWTO"
Ich beantworte keine Supportfragen per PM!
taki
Advanced Hacker
Advanced Hacker
Beiträge: 974
Registriert: 30. Apr 2004, 17:40
Wohnort: Berlin

Beitrag von taki »

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.
SuSE 12.3 kernel 3.7.10-1.16-desktop, K Desktop Environment Version 4.10.5 r1 - Medion Titanium Aldi v. 03/2009
Benutzeravatar
TeXpert
Guru
Guru
Beiträge: 2166
Registriert: 17. Jan 2005, 11:22

Beitrag von TeXpert »

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.

Code: Alles auswählen

# to resolve all your problems, try this:
HOWTO='pack c5,41*2,sqrt 7056,unpack(c,H)-2,oct 115' && perl -le "print $HOWTO"
Ich beantworte keine Supportfragen per PM!
Antworten