Portál AbcLinuxu, 23. dubna 2024 18:57


Dotaz: uprava skriptu timeout

6.8.2008 20:38 robertK | skóre: 26 | blog: Klokanuv_blog | Brno
uprava skriptu timeout
Přečteno: 244×
Odpovědět | Admin
Dobry den, pouzivam skript timeout z shelldorado.

Skript ma za argument prikaz, ktery se provede a pokud bezi dele jak 5 vterin tak se ten proces killne. Potreboval bych, aby se toto killnuti nekam zalogovalo. Zkousel jsem pridat neco jako date >> /cesta/log/timeout, ale nejak to nefungovalo (logovalo se vsechno, i to co skoncilo do peti vterin samo)

Dokazal by mi prosim nekdo poradit, jak skript modifikovat, nebo pripadne existuje nejake jine podobne reseni ktere toto logovani umoznuje?

Dekuji a preji pekny podvecer.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

6.8.2008 21:57 fakenickname | skóre: 42 | blog: fakeblog
Rozbalit Rozbalit vše Re: uprava skriptu timeout
Odpovědět | | Sbalit | Link | Blokovat | Admin
mezi radky 85 a 86 muzes pridat nejake echo..
6.8.2008 22:02 fakenickname | skóre: 42 | blog: fakeblog
Rozbalit Rozbalit vše Re: uprava skriptu timeout
treba
 85     (sleep 2; kill -9 $ParentPID)
 86     echo $(date): "Killed $ParentPID" >> log
 87     exit 0
 88 fi
"timeout" 88L, 2740C written
$ ./timeout cat
Terminated: 15
$ cat log 
st 6. srpna 2008 22:00:31 CEST: Killed 3555
$ 
Moznosti je milion.. a ten logfile si bud nahod do promenne nekam na zacatek nebo ho muzes davat pres parametr (lepsi).. format data by taky slo udelat lip.. precist nazev prikazu podle pid a zapsat do logu vedle pid i prikaz.. atd atd..
6.8.2008 23:32 robertK | skóre: 26 | blog: Klokanuv_blog | Brno
Rozbalit Rozbalit vše Re: uprava skriptu timeout
diky ale .... tohle se provede i kdyz prikaz skonci rychle tak se to taky loguje.

dal jsem tam podle rady
echo $(date): "Killed $ParentPID" >> /tmp/timeout.log
spoustel jsem opakovane
./timeout cat /tmp/timeout.log
a dival se jak log soubor ma na konci dalsi a dalsi polozky :(
7.8.2008 00:14 fakenickname | skóre: 42 | blog: fakeblog
Rozbalit Rozbalit vše Re: uprava skriptu timeout
ok, tentokrat jsem si teda precetl co ze to dela :-)
 81     exec >/dev/null 0<&1 2>&1   # Suppress error messages
 82     sleep $Timeout
 83     # tadyodtud
 84     cmd=$(ps -p $ParentPID -o command | tail -n 1)
 85     if [ -n "$cmd" ] && [ "$cmd" != COMMAND ]
 86     then
 87         echo "$(date): Killing $ParentPID ($cmd)" >> log
 88     fi
 89     # sem
 90     kill $ParentPID &&          # Give process time to terminate
 91         (sleep 2; kill -1 $ParentPID) &&
 92     (sleep 2; kill -9 $ParentPID)
 93     exit 0
 94 fi
"timeout" 94L, 2870C written
$ ./timeout cat
Terminated: 15
$ cat log 
čt  7. srpna 2008 00:13:34 CEST: Killing 5470 (cat)
$ ./timeout echo

$ cat log
čt  7. srpna 2008 00:13:34 CEST: Killing 5470 (cat)
$ 
Ale jinak mi prijde ze je to celkem prasacky udelane (vcetne mojho hacku).. :-/
7.8.2008 00:17 robertK | skóre: 26 | blog: Klokanuv_blog | Brno
Rozbalit Rozbalit vše Re: uprava skriptu timeout
tak diky. Nevali se teda nekde na webu neco co pracuje stejne ale neni to prasacky napsany? :)
7.8.2008 00:20 fakenickname | skóre: 42 | blog: fakeblog
Rozbalit Rozbalit vše Re: uprava skriptu timeout
no jestli to nechces provozovat na nejakem dulezitejsim serveru tak si myslim ze je to ok..
7.8.2008 00:35 robertK | skóre: 26 | blog: Klokanuv_blog | Brno
Rozbalit Rozbalit vše Re: uprava skriptu timeout
ne, na tom serveru jsou jenom moje veci, viz. tento dotaz.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.