UNIX - Shell Befehl
alligator
- perl
Hi zusammen,
ich will via Perl testen ob da ein Prozess auf
einer Datei läuft. Bis jetzt habe ich den Ansatz mit nem Shell-Befehl.
$x = system ("fuser datei.txt");
Aber $x gibt mir ja auch eine 0 wenn kein Prozess läuft.
Er gibt ja nur keine 0 wenn er den
Befehl aus irgendeinem Grund nicht ausführen kann.
Wisst ihr vielleicht wie ich da ein logisches Ergebnis bekomme,
also das ich weiss:
Läuft ein Prozess auf Datei datei.txt = Ja oder Nein.
Wäre für nen Tipp echt dankbar.
GRuß
alligator
Hi,
ich will via Perl testen ob da ein Prozess auf
einer Datei läuft. Bis jetzt habe ich den Ansatz mit nem Shell-Befehl.
$x = system ("fuser datei.txt");
schau Dir mal in
perldoc -f system
an, was diese Funktion für eine Rückgabe liefert. Lies außerdem
perldoc -f flock
perldoc perlopentut
und
perldoc perlstyle
zum Thema, wo bei Funktionsaufrufen Klammern gesetzt werden sollten.
Wäre für nen Tipp echt dankbar.
perldoc perlfunc "Functions for processes and process groups"
Cheatah
Wäre für nen Tipp echt dankbar.
perldoc perlfunc "Functions for processes and process groups"
Cheatah
HI,
ehrlichgesagt hab ich da nix gefunden was mich weiterbringt...
Mein neuer Lösungsansatz ist so:
open(STATUS, "fuser catalina.out |");
@test = <STATUS>;
foreach (@test)
{
print "$_ \n";
}
close STATUS;
Und dann hab ich ja in $_ die PID, wenn es ein gibt und falls nicht, dann ist
$_ leer. So würde es doch klappen oder ist das zu unsauber bzw. hat jmd. ne besser
Lösung ?
Gruß
alligator
Hi,
perldoc perlfunc "Functions for processes and process groups"
ehrlichgesagt hab ich da nix gefunden was mich weiterbringt...
warum nicht?
open(STATUS, "fuser catalina.out |");
Eieiei, nun, warum nicht.
@test = <STATUS>;
perldoc -f my
perldoc perlrun, -w
perldoc strict
foreach (@test)
{
(Intermezzo: perldoc perlstyle zum Thema, wo die geschweiften Klammern hinsollten.)
print "$_ \n";
perldoc -f join
perldoc perlvar, $/
Und dann hab ich ja in $_ die PID,
Genauer gesagt hast Du in @test die zugreifenden PIDs. Beachte unbedingt
perldoc -f chomp
Cheatah
Hi,
$x = system ("fuser datei.txt");
Du könntest einfach den entsprechenden Shell-Befehl direkt ausführen:
$x = ´fuser datei.txt´;
Als ergebnis enthält $x zwar keinen logischen wert, aber die Ausgabe des Befehls. Ich weis zwar nicht, ob das bei dem Befehl was bringt, da ich ihn nicht kenne, aber vielleicht kannst du dir so was basteln.
WICHTIG: ´ = Apostrohp (neben Backspace-Taste), sonst funktionierts nicht.
Ciao Michi