Stephan K.: alte Prozesse killen

Hallo allerseits,

folgendes Problem beschäftigt mich nun schon geraume Zeit:

Ich starte auf meinem Linux-Rechner alle 10 Minuten per cron einige Skripte, die normalerweise nicht länger als 2 Minuten für die Ausführung brauchen.
Normalerweise heißt, dass es manchmal auch schiefgeht und die Jobs ewig laufen.

Nun will ich ein (Shell)-Script, das meine Jobs nach einer vorgegebenen Zeit abschiesst.
Leider bin ich in der Shell-Programmierung nicht fit genug, um so etwas (relativ einfaches) zu lösen :-(

Andereseits sollte es dafür doch schon was fertiges geben, oder?
Bis jetzt leider nix gefunden.

Dank und Gruß
Stephan

PS: Ja, ich weiss, dass ich lieber die jobs so coden sollte, dass sie sauber durchlaufen,
aber die Fehlersuche dazu ist wesentlich aufwe(ä?)ndiger als obiger Ansatz!

  1. Hallo,

    folgendes Problem beschäftigt mich nun schon geraume Zeit:

    Ich starte auf meinem Linux-Rechner alle 10 Minuten per cron einige Skripte, die normalerweise nicht länger als 2 Minuten für die Ausführung brauchen.
    Normalerweise heißt, dass es manchmal auch schiefgeht und die Jobs ewig laufen.

    Nun will ich ein (Shell)-Script, das meine Jobs nach einer vorgegebenen Zeit abschiesst.
    Leider bin ich in der Shell-Programmierung nicht fit genug, um so etwas (relativ einfaches) zu lösen :-(

    Du kannst Dir ja pro script die Prozess-ID merken (die erfährst Du mit $$) d.h. in eine Datei schreiben und diese dann am Ende löschen.
    solltest Du am Anfang diese Datei vorfinden, so weißt Du, daß da noch ein alter Prozess läuft. mit dem programm kill könntest Du dann versuchen, den Prozess zu 'morden' und dann wieder die Datei neu schreiben und alles beginnt von vorne.

    Andereseits sollte es dafür doch schon was fertiges geben, oder?
    Bis jetzt leider nix gefunden.

    PS: Ja, ich weiss, dass ich lieber die jobs so coden sollte, dass sie sauber durchlaufen,
    aber die Fehlersuche dazu ist wesentlich aufwe(ä?)ndiger als obiger Ansatz!

    Auf Dauer wäre es sicherlich besser, Du findest den Fehler, weil wenn Du nicht weißt, woran es liegt, daß das Ding stecken bleibt, kann es durchaus auch sein, daß da etwas Fürchterliches im Gange ist, daß sich aber erst dann auswirkt, wenn der Schaden am größten ist (Murphy und so).

    Grüße
      Klaus

  2. Sup!

    Du könntest natürlich auch irgendwie z.B. mit

    ps -eo args,etime Prozesse und deren Laufzeit rausfinden und ein paar davon killen - aber dafür müsste man ziemlich gut Shell-Programmieren können oder ebenfalls ein Perl-Skript bemühen.

    Gruesse,

    Bio

    1. hallo bio,

      ps -eo args,etime

      das hat mir schon mal weitergeholfen, danke!
      der ps verträgt ja einiges an optionen, mit der o-option hab ich bisher noch nicht rumgespielt,
      aber die is ja subba :-)

      wahrscheinlich werd ich ein php-script drumherum stricken.
      sicher nicht optimal, aber erfüllt seinen zweck ;-)

      servus
      stephan