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

[solved] Log-file nach Ausführung v UDEV-Script n. sichtbar

rob40

Member
Hallo,

die automatische Ausführung eines UDEV-Scripts (SuSE 10.0) läuft einwandfrei.
Das Script schreibt am Ende Verzeichnisgrößen in eine Log-Datei ...
Code:
...
set foil=/data/stuff/log
...
echo "    ---        " >"$foil"
du -sch /data/stuff/* >>"$foil"
echo "    ---        " >>"$foil"
du -sch /media/usbdisk/*
echo "    ---        " >>"$foil"
cat "$foil"
... aber die Datei ist nicht zu sehen.
Wie bekomme ich die Log-Datei nach Ausführung des Scripts angezeigt - muß ich irgendwie das Ausgabe-Terminal angeben ?
 
OP
R

rob40

Member
Danke für die schnelle Antwort.
Die Logdatei
Code:
/data/stuff/log
wird geschrieben und ich kann sie manuell anzeigen -

aber sie wird nach wie vor nicht am Ende des Scriptes angezeigt. (ist für DummyUser gedacht)

Hast Du einen Ansatzpunkt ?
 

admine

Ultimate Guru
Hm ... bei mir hier mit einem Test-Script funzt es.

Keine Fehlermeldungen ?

Setze am Anfang des Scriptes mal ein "set -x"
Dann kannst du genau verfolgen, was passiert, wenn du das Script startest.
 
Ähm, das ganze ist ein udev-Script?
D.h. es wird automatisch beim einhängen eines Datenträgers ausgeführt (von udevd)?
Im Hintergrund ?

Und dann soll die Ausgabe wo erscheinen?
Auf einer Konsole?

Dann müsstest du die Ausgabe auch entsprechend Umleiten.
Irgendetwas mit: '> /dev/tty1' (oder so ähnlich).

Ich hoffe mal, ich habe da jetzt keinen Schwachsinn verzapft .... :?
 
OP
R

rob40

Member
Das Script wird via "udev" gestartet, dh. (in diesem Fall), sobald das System erkennt, dass die externe USB-Platte angeschlossen wurde.

Das Script läuft gut -
ich brauche nur noch (für DummyUser) am Ende der Scriptausführung die automatische Anzeige der erstellten Logdatei -
manuell kann ich sie anzeigen lassen.

Möglicherweise wird die Logdatei aufgrund des udev-Scriptstarts in einem anderen Terminal angezeigt ?
Wie kann ich das ggfs. ändern ?
 

admine

Ultimate Guru
rob40 schrieb:
Möglicherweise wird die Logdatei aufgrund des udev-Scriptstarts in einem anderen Terminal angezeigt ?
Wie kann ich das ggfs. ändern ?
Schau mal ein Posting drüber ;)
Ich hatte das mit dem udev und anderm tty vernachlässigt ... sry.
 
Der Editor müsste dann doch als User-Prozess gestartet werden ...
Dazu braucht das Script doch Zugriff auf einen X-Server?
Dann musst du die Variablen $DISPLAY und $USER in dem Script setzten, oder mit 'xauth' die '~/.Xauthority' des users importieren.

(Oder liege ich da falsch?) :?
 
Hm, könnte evtl. so klappen:
'udev' läuft als root?
Also:
Code:
XAUTHORITY=$(ps ax | grep '[-]auth' | awk '{print $NF}') kwrite -display :0 "$foil"
Kurz zusammengefasst:
Du filterst die Prozessliste nach dem X-Prozesss,
liest das XAuth-File in eine Variable,
und führst kwrite auf DISPLAY 0 aus (als root)
 
OP
R

rob40

Member
@b3ll3roph0n
Danke für Deine Tips !

läuft aus der Konsole perfekt -
aus dem udev-Script (=läuft als root) leider nicht: Log-Datei wird nicht angezeigt.
 
OP
R

rob40

Member
sorry für späte Reaktion - war beruflich im Stress.
Lösung:
Code:
XAUTHORITY=$(ps ax | grep '[-]auth' | awk '{print $NF}') /opt/kde3/bin/kwrite -display :0 "$foil"
@b3ll3roph0n
noch mal Danke für Deine klasse Unterstützung ! :)
 
Oben