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

Hat "who" eine Macke?

Für ein Programm, das in regelmäßigen Abständen ermitteln soll, wer gerade im System eingeloggt ist, hatte ich einfach "who" aufgerufen und die Liste dann ausgewertet.

Seltsamerweise hängte sich das Programm immer nach einiger Zeit auf. Mal lief es nur einige Minuten, dann einige Stunden, aber irgendwann blieb es hängen. (Unter Gambas programmiert, der Entwickler von Gambas, Benoit Minisini, wusste auch keinen Rat.)

Mein Verdacht richtete sich gegen die SHELL-Funktion des Programms. Deshalb hab ich es umgeschrieben. Jetzt ruft ein Script immer wieder who auf und legt die Liste in einer Datei ab, die das Programm einliest.

Zu meiner größten Verblüffung hängte sich nach etwa einer Stunde das Script auf! Inzwischen hatte ich das Script erweitert, dass es auch ps aufruft, aber mein Verdacht ist eher who, da dies ursprünglich ja schon Probleme gemacht hat.

Kann sich das jemand hier erklären?

Nur der Vollständigkeit halber, hier ist das Script:

Code:
#!/bin/sh

if [ -f ~/kwholiste ]
then
    rm ~/kwholiste
fi

who > ~/kwholiste

if [ -f ~/kwhopsliste ]
then
    rm ~/kwhopsliste
fi

ps aux > ~/kwhopsliste

~/Gambas/KwhoList2/KwhoLst &

until [ -f ~/kwhostop ]
do
    sleep 10
    rm ~/kwholiste
    who > ~/kwholiste
    rm ~/kwhopsliste
    ps aux > ~/kwhopsliste
done

rm ~/kwhostop

Danke schon mal für alle Ideen!

Rolf-Werner
[/code]
 

regexer

Advanced Hacker
Rolf-Werner schrieb:
Code:
~/Gambas/KwhoList2/KwhoLst &
Vorschlag: Kannst du das Teil mal veröffentlichen? Vielleicht können dann andere deinen Fehler reproduzieren ...

Rein gefühlsmäßig würde ich im übrigen Gambas misstrauen :wink:
 
OP
R

Rolf-Werner

Hacker
Moin,

Ich antworte mal allen gleichzeitig, danke für die Tipps!

1. w statt who werde ich mit Sicherheit testen, hatte ganz vergessen, dass es w gibt :)

2. set -x habe ich gleich mal eingebaut, das Script läuft jetzt seit 8:45 Uhr, noch kein Fehler.

3. Es kann nicht das Gambas-Programm sein, weil es ja weiterlief. Es las nur immer dieselbe alte Datei ein, weil das Script stehen geblieben war.

Ich melde mich dann wieder, wenn ich was herausgefunden hab.

Grüße

Rolf
 

regexer

Advanced Hacker
Unabhängig von deinem Problem vielleicht noch folender Tipp:
Wenn man die Standard-Ausgabe in eine Datei mit ">" umleitet, wird die Datei vorher automatisch gelöscht, falls sie vorhanden sein sollte. Deswegen sind die vielen "rm" in deinem Script unnötig.
 
OP
R

Rolf-Werner

Hacker
notoxp schrieb:
Unabhängig von deinem Problem vielleicht noch folender Tipp:
Wenn man die Standard-Ausgabe in eine Datei mit ">" umleitet, wird die Datei vorher automatisch gelöscht, falls sie vorhanden sein sollte. Deswegen sind die vielen "rm" in deinem Script unnötig.

Ja :oops: hab ich auch schon gemerkt. Das stammte noch aus der Entwicklungsphase.

Heute Vormittag hab ich das Script und das Programm noch einmal etwas erweitert, jetzt ist es bis 16 Uhr durchgelaufen. Mal sehen...

Grüße

Rolf
 
Oben