Dakuan
Anmeldungsdatum: 2. November 2004
Beiträge: 6345
Wohnort: Hamburg
|
Ok, der Titel klingt etwas blöd, aber mangels Wissen kann ich die Frage momentan nicht besser formulieren. Ich möchte per Script (oder anders) feststellen, wem der gerade sichtbare Desktop (x-server?) gehört, und ob ein Bilschirmschoner läuft. Hintergrund: Ich habe hier seit einigen Monaten ein Sript welches alle 5 Minuten per Cronjob gestartet wird und das Desktop Hintergrundbild tauscht. Dises Script verwenden momentan 2 User. Jetzt habe ich festgestellt, das Cronjobs immer gstartet werden, also auch wenn der betreffende User gar nicht eingelogt ist. Das müllt mir die Logdateien voll (Authentifizierung ... fehlgeschlagen, oder so ähnlich). Schliesslich macht es wenig Sinn, das Hintergrundbild zu tauschen, wenn der betreffende User gar nicht aktiv ist, bzw. der Bildschirmschoner sich schon auf dem Desktop austobt. Gibt es da Möglichkeiten oder weiss jemand wenigstens wo ich suchen muß? Ich stehe momentan mal wieder völlig im dunkeln... Dakuan
|
mehrfachstecker
Anmeldungsdatum: 18. Dezember 2004
Beiträge: 661
Wohnort: Neuwied
|
Die Programme »w« und »who« geben aus ob und wo (also X-Display oder VC) ein Benutzer angemeldet ist. Die ausgabe von »w« ist wesentlich ausführlicher als die »who«. Beispiel »w«:
adomanski@wks001:~$ w
20:14:41 up 7:38, 2 users, load average: 0,38, 0,33, 0,37
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
adomansk :0 - 16:18 ?xdm? 30:49 0.04s /bin/sh /usr/bi
adomansk tty2 - 16:17 1:48m 0.19s 0.19s -bash Beispiel »who«:
adomanski@wks001:~$ who
adomansk :0 May 21 16:18
adomansk tty2 May 21 16:17 Für den Bildschirmschoner sollte folgendes seine Wirkung tun: ps -u BENUTZERNAME | grep xscreensaver
|
blackbird
Anmeldungsdatum: 19. November 2004
Beiträge: 3396
Wohnort: Hermagor, Kärnten - Österreich
|
mehrfachstecker hat geschrieben: Für den Bildschirmschoner sollte folgendes seine Wirkung tun: ps -u BENUTZERNAME | grep xscreensaver
xscreensaver läuft immer. Auch wenn der Screensaver noch nicht aktiviert ist Aber who -i gibt die idle Zeit aus. Damit könnte sich schon was machen lassen.
|
Dakuan
(Themenstarter)
Anmeldungsdatum: 2. November 2004
Beiträge: 6345
Wohnort: Hamburg
|
Wow, danke, das ging ja schnell. Also "w" und "who" hört sich schonmal gut an.
xscreensaver läuft immer. Auch wenn der Screensaver noch nicht aktiviert ist
habe ich auch gerade festgestellt.
dakuan@blue:~ $ ps -u dakuan | grep xscreensaver
4543 ? 00:00:00 xscreensaver Werd mich mal etwas mit dem Ausgabeformat befassen. Vielleicht kann man den Zeitstempel ja noch auswerten, falls da mal was anderes als 0 drinnsteht. Muß ich wohl noch ein Cronjob für basteln.
Aufgefallen ist mir das ganze übrigens als ich am telefonieren war und immer wieder mal die Animationen des Beildschirmschoners zurz pausierte (wenn die neue Datei geladen wird). Irgendwann wurde mir der Zusammenhang klar. Dakuan
|
Dakuan
(Themenstarter)
Anmeldungsdatum: 2. November 2004
Beiträge: 6345
Wohnort: Hamburg
|
@mehrfachstecker Dein Beispiel verwirrt mich jetzt etwas. Wie ist das zustandegekommen? Ich bekomme jetzt z.B. sowas: root@blue:/home/manfred # w
21:32:41 up 3:00, 3 users, load average: 0,01, 0,05, 0,01
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
manfred :0 - 18:34 ?xdm? 4:14 0.55s x-session-manag
manfred pts/0 :0.0 20:46 60.00s 0.01s 0.01s bash
root pts/1 :0.0 21:28 0.00s 0.00s 0.00s w Soll ich jetzt nach "x-session" oder besser nach "?xdm?" suchen. Bei Dir taucht "x-session-manag" nicht auf. (Hattest du evtl. keinen x-server am laufen?) Oder reicht vielleicht schon ":0" hinter dem Usernamen?
Dakuan
|
mahe
Anmeldungsdatum: 25. Oktober 2004
Beiträge: 88
Wohnort: Liezen, Österreich
|
Das :0 sollte reichen. Wenn es vorkommt, dass du mehrere X-Server laufen hast musst du auch nach :1, :2, ... suchen. Allerdings musst du dann vorsichtig sein weil die Spalte LOGIN@ auch die selben Zeichenketten enthalten könnte. Nach ?xdm? zu suchen wird dann wohl doch sicherer sein. Bei mir sieht die Ausgabe von w übrigens so aus: 01:36:45 up 7:08, 3 users, load average: 0,03, 0,08, 0,08
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - 01:35 1:21 0.13s 0.13s -bash
mahe :0 - 21:15 ?xdm? 8:28 0.03s /bin/sh /etc/xdg/xfce4/xinitrc
mahe pts/0 :0.0 01:34 0.00s 0.12s 0.00s w
|
mehrfachstecker
Anmeldungsdatum: 18. Dezember 2004
Beiträge: 661
Wohnort: Neuwied
|
Du musst nach :0, :1, :* suchen. Wenn der User nicht über ein X Angemeldet ist würde er tty0 ausgeben. pts/0 sind Terminalsitzungen aus X heraus. Also zum Beispiel mit gnome-terminal. Wenn du nach :0 parst ist sicher das der Benutzer X benutzt.
|
blackbird
Anmeldungsdatum: 19. November 2004
Beiträge: 3396
Wohnort: Hermagor, Kärnten - Österreich
|
mehrfachstecker hat geschrieben: Du musst nach :0, :1, :* suchen. Wenn der User nicht über ein X Angemeldet ist würde er tty0 ausgeben. pts/0 sind Terminalsitzungen aus X heraus. Also zum Beispiel mit gnome-terminal. Wenn du nach :0 parst ist sicher das der Benutzer X benutzt.
pts/X sind aber auch ssh Sitzungen. Keine Ahnung habe ich allerdings, wie FreeNX sich anmeldet.
|
mehrfachstecker
Anmeldungsdatum: 18. Dezember 2004
Beiträge: 661
Wohnort: Neuwied
|
blackbird hat geschrieben: mehrfachstecker hat geschrieben: Du musst nach :0, :1, :* suchen. Wenn der User nicht über ein X Angemeldet ist würde er tty0 ausgeben. pts/0 sind Terminalsitzungen aus X heraus. Also zum Beispiel mit gnome-terminal. Wenn du nach :0 parst ist sicher das der Benutzer X benutzt.
pts/X sind aber auch ssh Sitzungen. Keine Ahnung habe ich allerdings, wie FreeNX sich anmeldet.
Richtig. FreeNX benutzt auch SSH.
|
Dakuan
(Themenstarter)
Anmeldungsdatum: 2. November 2004
Beiträge: 6345
Wohnort: Hamburg
|
So, nach einigen Versuchen mit Testscripts habe ich jetzt folgende Lösung für das erste Problem gefunden und der Wechsel des Hintergrundbildes funkioniert immer noch 🤣
Flag=`w | grep -Ec $USER'.*:0.*?xdm?'`
if [ $Flag -ne 1 ]; then
exit 0
fi
# sonst weitermachen Ich bin mir allerdings nicht sicher, ob das performancemäßig nicht ein Rückschritt ist (wg. grep und Reguläre Ausdrücke). Aber auf jeden Fall verbessert das mein Verständnis für Linux.
Über den Bildschirmschoner denke ich morgen mal nach. Dakuan
|