Seite 1 von 1

speedometer, funkt nicht

Verfasst: Donnerstag 16. Januar 2020, 19:13
von ELindemann
Hallo @all,

ich bin kein Schueler, es geht auch nicht um Hausaufgaben, da bin ich schon sehr alt. :-)

Und doch wende ich mich an das Forum, das o.a. Tool ist ein schoenes Tool um auf der Console unter Linux mal schnell zu sehen, wieviel ueber das Netzwerk auf den NICs transportiert wird. Schoene schnelle graphische Ausgabe. Braucht urwid.

Dieses Tool war bisher absolut ohne Kopfschmerzen, sind die Bed. erfuellt und wird mit sowas

/usr/local/speedometer/speedometer.py -k 16 -i "0.25" -tx enx001b21XXXXXX -rx enx001b21XXXXXX

werden die o.a. Graphik auf der Console ausgegeben. Ueberall, das gelich gemacht, copiert.
Will aber nicht. Rufe ich den Einzeiler auf, folgt (natuerlich ist urwid auch mit auf der HD, wie bei den anderen Servern):

###################################################
Traceback (most recent call last):
File "/usr/local/speedometer/speedometer.py", line 1093, in <module>
console()
File "/usr/local/speedometer/speedometer.py", line 811, in console
do_display(cols, urwid_ui, exit_on_complete, num_colors)
File "/usr/local/speedometer/speedometer.py", line 816, in do_display
mg.main(num_colors)
File "/usr/local/speedometer/speedometer.py", line 266, in main
self.loop.run()
File "/usr/local/speedometer/urwid/main_loop.py", line 170, in run
self.screen.run_wrapper(self._run)
File "/usr/local/speedometer/urwid/raw_display.py", line 234, in run_wrapper
return fn()
File "/usr/local/speedometer/urwid/main_loop.py", line 188, in _run
self.event_loop.run()
File "/usr/local/speedometer/urwid/main_loop.py", line 498, in run
self._loop()
File "/usr/local/speedometer/urwid/main_loop.py", line 512, in _loop
ready, w, err = select.select(fds, [], fds, timeout)
select.error: (9, 'Bad file descriptor')
###################################################

Ich kann gerade python schreiben, mehr nicht.

Worum ich hier bitte, warum funkt es nicht, was fehlt, wo kann ich ansetzen?
Nein, ihr sollt es nicht richten, nur mir einen Ansatz geben, wo/wie ich das Teil doch zur Funktion ueberreden kann. Mein Leben haengt v. diesem Tool nicht ab, doch auf allen Servern war das OK, nie Probeme gemacht, gehabt, und doch funkt es hier nicht.

Danke vorab fuer das replying.

Gruss
ELindemann

Re: speedometer, funkt nicht

Verfasst: Donnerstag 16. Januar 2020, 20:51
von __deets__
IMHO ein System Problem. Der select call wartet auf einen file deskriptor der ungültig ist. Dessen wert 9 suggeriert das es eine im Verlauf des Skriptes später geöffnete Datei ist. Datei meint hier aber Datei im Unix Sinne. Also zb auch einen socket zum managen der NICs.

Was kannst du also tun? Zb strace benutzen & anhand des Dumps nachvollziehen, welcher call den FD 9 (bzw. welcher konkret auch immer dann Crasht. Sollte aber eigentlich gleich bleiben) liefert. Das gibt dann einen Hinweis auf die Ursache.

Re: speedometer, funkt nicht

Verfasst: Freitag 17. Januar 2020, 22:52
von ELindemann
Hallo __deets__,

danke fuer die Antwort. Du hast Recht, ganz unten steht, was da los ist. Ich nahm an, weil oben die Fehler sind, kam das als Ergebnis.
Ich schaue mal, was strace sagt.

Danke.

Re: speedometer, funkt nicht

Verfasst: Freitag 17. Januar 2020, 23:12
von ELindemann
libreadline.so.8 konnte nicht gefunden werden, in eigenartiger Dir-Struktur.
hierhin habe ich einen Link gesetzt.
lib64/bash/libreadline.so.8

execve("/usr/local/bin/speth01.sh", ["speth01.sh"], 0x7ffddc8fdc10 /* 40 vars */) = 0
brk(NULL) = 0x705000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/lib64/bash/tls/x86_64/libreadline.so.8", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/lib64/bash/tls/x86_64", 0x7ffdb5159180) = -1 ENOENT (No such file or directory)
open("/lib64/bash/tls/libreadline.so.8", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/lib64/bash/tls", 0x7ffdb5159180) = -1 ENOENT (No such file or directory)
open("/lib64/bash/x86_64/libreadline.so.8", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/lib64/bash/x86_64", 0x7ffdb5159180) = -1 ENOENT (No such file or directory)

open("/lib64/bash/libreadline.so.8", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@\221\1\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=334016, ...}) = 0

...
Ergebnis: Funkt immer noch nicht. :-(
ELindemann

Re: speedometer, funkt nicht

Verfasst: Freitag 17. Januar 2020, 23:23
von ELindemann
Ist ne groessere Nummer, jetzt sind alle BAD File ... ergaenzt, korrigiert und doch funkt es nicht.
Nicht beherrschbar, ohne einen Kurs zu belegen. ;-)
Danke @all, closed.
ELindemann