Logmeldung PID Tread Dump

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
HelsAett
Beiträge: 749
Registriert: 18.03.2003 18:25:00

Logmeldung PID Tread Dump

Beitrag von HelsAett » 18.05.2010 17:15:40

Hallo @ll

ich würde gerne folgendes erreichen

tail -f meine.log | grep MeinERROR

ein ergebniss liefert, soll die PID ausgelesen werden

PID=`lsof -i tcp:80 | awk '{print $2}'`

und dann anschließend ein Treaddump gezogen werden, bis die PID nicht mehr gibt, alle 5 sekunden
kill -3 PID

hat jemand eine Idee wie ich das ganze in ein kurzem Script bekomme

Danke

Gruß HelsAett

Benutzeravatar
HelsAett
Beiträge: 749
Registriert: 18.03.2003 18:25:00

Re: Logmeldung PID Tread Dump

Beitrag von HelsAett » 18.05.2010 18:54:46

hab was gefunden und meinen bedürfnissen angepasst

Code: Alles auswählen

#!/bin/bash

ignore_sig() {
 sleep 1
}

trap ignore_sig SIGQUIT SIGHUP SIGTERM EXIT

issue_start="false"
log_file="logfile.log"

# collect info when issue starts
while [ $issue_start = "false" ]; do
        ERROR=`grep -c MyErrorMessages $log_file`
        if [ $ERROR -eq 0 ]; then
                echo "everything is fine, waiting 5 seconds"
                sleep 5
        else
                issue_start=true
                echo "fucking issue comes up"
        fi
done

# collect thread dumps
while [ true ]; do
        PID=`lsof -i tcp:8080 | grep LISTEN | awk {'print $2'}`
        if [ -z $PID ]; then
                break
                echo "fucking process died"
        else
                echo "create thread dump"
                kill -3 $PID
                sleep 30
        fi
done

exit 0


Antworten