Bio: (PERL) Das Environment und ps machen mich fertig :'-(

Beitrag lesen

Sup!

Liebe Mitstreiter. Ich habe ein wunderschönes Programm in Perl geschrieben, dessen Aufgabe es ist, zu überprüfen, ob ein anderes Programm noch läuft.

Es tut dies, in dem es mit

undef $/;
open IN,('ps -e|');
$var = <IN>;
close IN;

if ($var =~ 'laufendes_programm.pl')
  {
    print "supi!\n";
  }
else
  {
    print "verdammt!\n";
  }

nachschaut, ob das programm laufendes_programm.pl noch läuft.

Tja, von der Kommandozeitel funktioniert das hervorragend, aber leider wird das Programm als eine Art Dämon von meinem lustigen ip-up.local Skript gestartet, sobald meine Internet-Verbindung hoch kommt. Und in dieser Umgebung scheint das Environment anders eingestellt zu sein, und das scheint Einfluß auf die Pipe zum ps zu haben.

Zum Beispiel bekomme ich in meiner Shell normalerweise mit ps -ef | less die ganze Ausgabe von ps, aber das Programm oben bekommt, in seiner Umgebung, nur die ersten 80 Zeichen.
Und, zu allem Übel, formatiert ps seine Ausgabe nach Regeln, die mir total unersichtlich sind... laufendes_programm.pl ist z.B. einfach ein zu langer Name, der glatt abgeschnitten wird - folglich funktioniert der reguläre Ausdruck nicht, und alles läuft schief.
Ich habe in den ps manpages rumgesucht, aber wie man ps dazu bringt, bestimmte Spaltenbreiten für bestimmte Ausgabe einzuhalten, habe ich nicht finden können.
Und wie man die Umgebung manipuliert, so daß ich mehr als 80 Zeichen bekomme über die Pipe, habe ich auch noch nicht rausbekommen.

Hilfe ;-)

Gruesse,

Bio