Schrift
[thread]6008[/thread]

Mit Perl prüfen, ob KDE verf. ist?



<< >> 8 Einträge, 1 Seite
Gast Gast
 2004-01-10 00:59
#79053 #79053
hallo, wie könnte ich wohl unter linux prüfen, ob eine grafische oberfläche verfügbar ist? ist ja sicher ein systemaufruf, aber welcher?

DANKE!!
Ronnie
 2004-01-10 01:17
#79054 #79054
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
wie wäre es mit: whereis startx. Bei Debian kannst du auch mit dpkg die installierten packete listen, und dann nach einem spez. grepen. Dies müsste eigentlich auch mit rpm funktionieren, für SUSE oder RedHat.\n\n

<!--EDIT|Ronnie|1073690695-->
JW
 2004-01-10 10:14
#79055 #79055
User since
2003-08-04
467 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Wenn du prüfen willst, ob ein entsprechender Dienst läuft hilft dir auch "ps".

joerg@snibril:~> ps ax | grep X
1241 ? RL 1:13 /usr/X11R6/bin/X vt7 -auth /var/lib/xdm/authdir/authfiles/A:0-e0XbEt
1425 ? S 0:00 /bin/sh /usr/X11R6/bin/kde
1459 ? S 0:00 gpg-agent --daemon --no-detach --keep-display ssh-agent /etc/X11/xinit/xinitrc
1460 ? S 0:00 ssh-agent /etc/X11/xinit/xinitrc

oder für KDE

joerg@snibril:~> ps ax | grep kdeinit:
1478 ? S 0:00 kdeinit: Running...
1481 ? S 0:00 kdeinit: dcopserver --nosid
1484 ? S 0:00 kdeinit: klauncher
1487 ? S 0:00 kdeinit: kded
1504 ? S 0:00 kdeinit: knotify
1507 ? S 0:00 kdeinit: ksmserver
1508 ? S 0:01 kdeinit: kwin -session 11c0a87301000106952578700000052450000_1073686257_137303
1510 ? S 0:02 kdeinit: kdesktop
1512 ? S 0:03 kdeinit: kicker
1520 ? S 0:01 kdeinit: klipper
1524 ? S 0:01 kdeinit: kwrited
1529 ? S 0:01 kdeinit: konqueror --preload
1664 ? S 0:00 kdeinit: kio_file file /tmp/ksocket-joerg/klauncherEf1W9a.slave-socket /tmp/ksocket-joerg/kmaildOIyha.slave-socket
2023 ? R 0:01 kdeinit: konsole

Neben Ronnies Tip wäre auch noch die Suche nach bestimmten Libs möglich.

Wahrscheinlich reicht es sogar wenn man bestimmte Umgebungsvariablen abfragt.

joerg@snibril:~> perl
print $ENV{"WINDOWMANAGER"}."\n";

/usr/X11R6/bin/kde\n\n

<!--EDIT|JW|1073722519-->
Dubu
 2004-01-10 18:12
#79056 #79056
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Was meinst du jetzt: Ob prinzipiell auf dem aktuellen Rechner eine graphische Oberflaeche konfiguriert ist? Das kann man nicht eindeutig feststellen.

Oder ob momentan auf eine graphische Benutzeroberflaeche zugegriffen werden kann? Dann auf die Umgebungsvariable $DISPLAY pruefen, diese gibt an ob und wo momentan die graphische Benutzeroberflaeche verfuegbar ist (sie muss ja nicht auf dem lokalen Rechner laufen!).
ptk
 2004-01-12 11:36
#79057 #79057
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=Ronnie,10.Jan..2004, 00:17]wie wäre es mit: whereis startx.
[/quote]Nein. Damit ueberprueft man nur, ob X11 installiert ist. X11 != KDE.
Quote
Bei Debian kannst du auch mit dpkg die installierten packete listen, und dann nach einem spez. grepen. Dies müsste eigentlich auch mit rpm funktionieren, für SUSE oder RedHat.

Vielleicht waere es besser, in den einschlaegigen Pfaden nach der Existenz eines typischen KDE-Programms (kwin, startkde o.ae.) zu testen. Und nicht nur die Programme in PATH sondern auch unter /opt/kde u.a.\n\n

<!--EDIT|ptk|1073900287-->
ptk
 2004-01-12 11:43
#79058 #79058
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=Dubu,10.Jan..2004, 17:12]Was meinst du jetzt: Ob prinzipiell auf dem aktuellen Rechner eine graphische Oberflaeche konfiguriert ist? Das kann man nicht eindeutig feststellen.

Oder ob momentan auf eine graphische Benutzeroberflaeche zugegriffen werden kann? Dann auf die Umgebungsvariable $DISPLAY pruefen, diese gibt an ob und wo momentan die graphische Benutzeroberflaeche verfuegbar ist (sie muss ja nicht auf dem lokalen Rechner laufen!).[/quote]
DISPLAY kann gesetzt sein, obwohl die grafische Oberflaeche gar nicht laueft. Aber in 99% aller Faelle ist es ein guter Indikator.
ptk
 2004-01-12 11:45
#79059 #79059
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=JW,10.Jan..2004, 09:14]Wenn du prüfen willst, ob ein entsprechender Dienst läuft hilft dir auch "ps".

joerg@snibril:~> ps ax | grep X
1241 ? RL 1:13 /usr/X11R6/bin/X vt7 -auth /var/lib/xdm/authdir/authfiles/A:0-e0XbEt
1425 ? S 0:00 /bin/sh /usr/X11R6/bin/kde
1459 ? S 0:00 gpg-agent --daemon --no-detach --keep-display ssh-agent /etc/X11/xinit/xinitrc
1460 ? S 0:00 ssh-agent /etc/X11/xinit/xinitrc

oder für KDE

joerg@snibril:~> ps ax | grep kdeinit:
1478 ? S 0:00 kdeinit: Running...
1481 ? S 0:00 kdeinit: dcopserver --nosid
1484 ? S 0:00 kdeinit: klauncher
1487 ? S 0:00 kdeinit: kded
1504 ? S 0:00 kdeinit: knotify
1507 ? S 0:00 kdeinit: ksmserver
1508 ? S 0:01 kdeinit: kwin -session 11c0a87301000106952578700000052450000_1073686257_137303
1510 ? S 0:02 kdeinit: kdesktop
1512 ? S 0:03 kdeinit: kicker
1520 ? S 0:01 kdeinit: klipper
1524 ? S 0:01 kdeinit: kwrited
1529 ? S 0:01 kdeinit: konqueror --preload
1664 ? S 0:00 kdeinit: kio_file file /tmp/ksocket-joerg/klauncherEf1W9a.slave-socket /tmp/ksocket-joerg/kmaildOIyha.slave-socket
2023 ? R 0:01 kdeinit: konsole

Neben Ronnies Tip wäre auch noch die Suche nach bestimmten Libs möglich.

Wahrscheinlich reicht es sogar wenn man bestimmte Umgebungsvariablen abfragt.

joerg@snibril:~> perl
print $ENV{"WINDOWMANAGER"}."\n";

/usr/X11R6/bin/kde[/quote]
Fuer ein gerade laufendes KDE kann man auch "xprop -root" eingeben und nach der Existenz des Atoms KWIN_RUNNING suchen. Die Environment-Variable WINDOWMANAGER ist AFAIK eine Konvention einiger Linux-Distributionen und muss nicht ueberall gesetzt sein.
Dubu
 2004-01-12 23:30
#79060 #79060
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
[quote=ptk,12.01.2004, 10:43]DISPLAY kann gesetzt sein, obwohl die grafische Oberflaeche gar nicht laueft.[/quote]
Ja, das ist dann aber ein "Fehler", der natuerlich abzufangen ist. ;)
Wenn DISPLAY gesetzt ist, sollte man davon ausgehen koennen, dass der Benutzer irgendwo ein X11 laufen hat, auf das per $DISPLAY zugegriffen werden kann (bei mir z.B. oft ueber eine ssh-Verbindung auf einem anderen Rechner). Ob auf dem lokalen Rechner ein X laeuft oder nicht, ist dabei ziemlich egal (es muss nicht meines sein und es kann sein, dass ich nicht darauf zugreifen darf/kann).

Was das Vorhandensein von KDE angeht: Ich habe Maths Frage so verstanden, dass es irgendeine graphische Oberflaeche ein sollte. (Fuer viele "Neulinuxer" ist ja KDE schon aequivalent zu X11.) Die Frage ist nur: Muss sie gerade laufen (laesst sich auf verschiedene, schon genannte Arten testen) oder soll sie nur installiert sein? Und wofuer waere letzteres interessant zu wissen? :)\n\n

<!--EDIT|Dubu|1073943158-->
<< >> 8 Einträge, 1 Seite



View all threads created 2004-01-10 00:59.