On Fre, 04 Apr 2003 at 00:31 (+0200), Ekkard Gerlach wrote:
warum bricht bei der Verwendung von /usr/bin/top in einem Skript dieses mit dem Fehler
top: tcgetattr() failed: Invalid argument (Meldung unter suse 8.0, Kernel 2.4.18) top: tcgetattr() failed: Inappropriate ioctl for device (Meldung unter Suse 7.2, Kernel 2.4.19)
ab, wenn es als cronjob gestartet wurde? z.B.:
/etc/crontab: * * * * * root /usr/bin/top -n 1 >> /var/log/test 2>&1
Ich kann /usr/bin/top -n 1 >> /var/log/test 2>&1 von einem xterm starten, ob direkt am Prompt oder in einem Skript und es funktioniert, warum nicht als cronjob?
top erwartet ein Terminal, an das es seine Ausgaben schicken kann. Wenn Du top in einem xterm oder sonstigem Terminal-Programm startest, kann top die Einstellungen des TTY auslesen, das die Darstellung Deines xterm übernommen hat (also Dein Bildschirm) - auch wenn Du die Ausgaben umleitest. cron besitzt sowas nicht - logo, was soll da auch das Terminal sein? siehe auch: man tcgetattr Wenn Du, wie ich vermute, eine Überwachung des Systems vornehmen willst, dann solltest Du Kommandozeilenprogramme nutzen. top steuert das Terminal über Steuersequenzen (z. B. um ein Scrollen beim Neumalen des Bildschirminhalts zu verhindern), ist also für sowas nicht so richtig geeignet. Als Anregung: ps pstree swapon ipcs /proc ... Man muss natürlich noch per sort, sed, grep, awk ... ein wenig Hand anlegen. Jan