abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

dnes 20:33 | IT novinky

Společnost Proton AG představila novinky ve svých službách Proton Mail, Proton VPN, Proton Calendar a Proton Drive. Služby jsou přístupné z nového webu proton.me. Aktualizován byl ceník. Představen nový vizuál.

Ladislav Hagara | Komentářů: 1
dnes 19:22 | Nová verze

Týden po vydání Red Hat Enterprise Linux (RHEL) 9.0 byl vydán jeho klon AlmaLinux 9. Podrobnosti v poznámkách k vydání.

Ladislav Hagara | Komentářů: 2
dnes 15:00 | IT novinky

Broadcom kupuje firmu VMware za 61 miliard dolarů.

Ladislav Hagara | Komentářů: 4
dnes 09:55 | Nová verze

Google Chrome 102 byl s verzí 102.0.5005.61 prohlášen za stabilní. Opraveno bylo 32 bezpečnostních chyb. Přehled novinek na Chromium Blogu nebo na Chrome Platform Status. Oficiální přehled novinek (New in Chrome, YouTube) zatím nebyl publikován. Přehled novinek v nástrojích pro vývojáře je bez videa.

Ladislav Hagara | Komentářů: 0
dnes 01:55 | Komunita

The Open Source Software Security Mobilization Plan (pdf) je konsorciem The Linux Foundation zastřešen plán na zvýšení bezpečnosti open source softwaru.

Ladislav Hagara | Komentářů: 1
dnes 00:11 | Zajímavý článek

Minulý týden proběhla hackerská soutěž Pwn2Own Vancouver 2022. Máte-li na starost bezpečnost IT, výsledky vás nepotěší. Microsoft Teams, Oracle Virtualbox, Mozilla Firefox, Microsoft Windows 11, Ubuntu Desktop, Apple Safari, Tesla Model 3 Infotainment System. Vše potopeno. Demonstrované bezpečnostní chyby ve Firefoxu jsou již opraveny ve verzi 100.0.2.

Ladislav Hagara | Komentářů: 0
včera 13:22 | Nová verze

Lokální úložiště Stratis (Wikipedie), alternativa k úložištím s ZFS a Btrfs, bylo vydáno ve verzi 3.1.0. Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 5
včera 13:11 | IT novinky

Sdružení CZ.NIC dnes vrátilo do zóny dříve vyřazená jména domén dezinformačních webů.

Ladislav Hagara | Komentářů: 33
včera 11:11 | IT novinky

Před půl rokem představený webový vyhledávač You.com (Wikipedie) se zaměřuje také na kodéry. Vyzkoušet lze YouCode.

Ladislav Hagara | Komentářů: 1
včera 08:00 | Zajímavý software

RustDesk je open source alternativa k TeamVieweru. Zdrojové kódy jsou k dispozici na GitHubu pod licencí GPL-3.0.

Ladislav Hagara | Komentářů: 1
Na sociálních sítích nebo jiných webových diskuzích vystupuji pod
 (60%)
 (17%)
 (23%)
Celkem 338 hlasů
 Komentářů: 29, poslední 24.5. 00:02
Rozcestník


Dotaz: Jak zabít program po určitém čase?

Jan Zahornadsky avatar 25.5.2005 08:33 Jan Zahornadsky | skóre: 22 | blog: hans_blog
Jak zabít program po určitém čase?
Přečteno: 225×
Dobrý den,

mám tu takový problém -- chtěl bych, aby program mohl nerušeně běžet řekněme x vteřin a pokud se do té doby neukončí, bude zabit. Existuje na to nějaký nástroj, nebo příkaz nebo jak lze toho dosáhnout? Děkuji
Actually, I was half an hour into the pointer scripting documentation when she got dressed and left.

Odpovědi

25.5.2005 08:57 Roland | skóre: 3
Rozbalit Rozbalit vše Re: Jak zabít program po určitém čase?
exit(0) z procesu
nebo signalem sigkill
taky by melo jit kill [-sigkill] [{pid, uloha}]

kill pid
kill -9 pid

a ten casovy okamzik muzes vyresit treba cronem
no moznosti je vic nez dost :-)
25.5.2005 09:03 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Jak zabít program po určitém čase?
ulimit -t
25.5.2005 09:23 laco
Rozbalit Rozbalit vše Re: Jak zabít program po určitém čase?
ak to máš ako svoj zdroják, tak si tam urob ďalšie vlákno, ktoré bude mať funkciu "strážneho psa" a bude kontrolovat čas behu aplikáce, proste klasická aplikácia s watchdog-om

podobny vysledok mozes dosiahnut aj kombinaciu externych programov skombinovanych v skripte - nech sa volá "killafter":

#!/bin/sh

program &

pidlist=`ps aux | grep program | awk '{print $2}'`

sleep $1

for i in $pidlist; do

kill -9 $i

done

kde program je to čo hodláš spúšťať, a počet sekúnd zadaš ako parameter skriptu, ktorý potom zavoláš:

killafter 5

variácie na tému sú povolené ... ;-)
Jan Zahornadsky avatar 25.5.2005 10:16 Jan Zahornadsky | skóre: 22 | blog: hans_blog
Rozbalit Rozbalit vše Re: Jak zabít program po určitém čase?
Diky moc, ze vsech moznosti jsem se rozhodl pro tenhle tvuj skriptik. A funguje skvele.
Actually, I was half an hour into the pointer scripting documentation when she got dressed and left.
25.5.2005 11:14 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: Jak zabít program po určitém čase?
Pokud používáš bash tak se nijak nezalamuj
xclock & sleep 2; kill %+
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
25.5.2005 11:22 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Jak zabít program po určitém čase?
Ach jo. Grepovat cosi v ps a zabíjet podle jména náhodné procesy...
time="$1"
shift
"$@" &
sleep "$time"
kill -TERM $!
25.5.2005 11:46 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: Jak zabít program po určitém čase?
když už to chce člověk vylepšit aby to zabilo najisto
#!/bin/sh
timeout=$1
shift
"$@" &
sleep $timeout
ps -p $! &>/dev/null && {
  kill $! &>/dev/null
  ps -p $! &>/dev/null && (
    sleep 1
    kill -KILL $! &>/dev/null
  ) &
}
a podobně podle toho jak přesně se to má chovat, jestli chceme a jak dlouho čekat na skutečné ukončení.
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
25.5.2005 12:25 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Jak zabít program po určitém čase?
Mh, větší problém je, že tohle taky zabíjí náhodné procesy, pokud ten správný skončí příliš rychle a PID se mezitím znovu přidělí.
25.5.2005 13:09 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: Jak zabít program po určitém čase?
Nojo, ale jak to chceš udělat?
ps -p $! | grep -q "$1"
(případně
[ "${1##*/}" == "$(sed 's#.*/##' /proc/$!/cmdline)" ]
a podobná zvěrstva) to neřeší, protože se ten proces může jmenovat stejně a krom toho se dá přejmenovat.
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
25.5.2005 13:17 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Jak zabít program po určitém čase?
Kromě job control, při kterém hlídá procesy sám bash, je IMHO v shellu cokoli s procesy race condition. Asi by to řešilo deset řádků v C: fork, exec, alarm, waitpid, kill.
25.5.2005 13:23 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: Jak zabít program po určitém čase?
Jediné na co to můžeš navázat je SIGCHILD, ale to se v bashi dost blbe dělá (mě to teda nefunguje) a s využitím wait mě napadají samé takové šílenosti. Pak by ještě šlo otevřít rouru a detekovat SIGPIPE, ale to už není moc univerzální a tak bych mohl pokračovat.
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
25.5.2005 11:22 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: Jak zabít program po určitém čase?
Prasca!

Co takhle ho napřed polechtat SIGTERMem a nechat ho aď po sobě uklidí? Tebe bych nas svoje kompy nenechal šáhnout ani zdálky podívat.
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
25.5.2005 11:29 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Jak zabít program po určitém čase?
kill -9

grep | awk

Chybí tam akorát ten cat...
25.5.2005 11:55 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: Jak zabít program po určitém čase?
#!/bin/sh
timeout="$1"
shift
"$@" &
sleep "$timeout"
ps -p $! &>/dev/null && {
  kill -TERM $! &>/dev/null
  sleep 2
  ps -p $! &>/dev/null && {
    kill -INT $! &>/dev/null
    sleep 1
    ps -p $! &>/dev/null && {
      kill -HUP $! &>/dev/null
      sleep 1
      ps -p $! &>/dev/null && {
        kill -KILL $! &>/dev/null
        sudo rm -f "$(which "$1")"
      }
    }
  }
}
:-)
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
25.5.2005 13:19 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Jak zabít program po určitém čase?
:-)
25.5.2005 13:53 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: Jak zabít program po určitém čase?
Teda místo sudo rm -f "$(which "$1")" by asi bylo lepší
sudo rm -f "$(readlink /proc/$!/exe)"
a to samozřejmě ještě před tím posledním killem :-)
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
25.5.2005 09:36 fish | skóre: 22
Rozbalit Rozbalit vše Re: Jak zabít program po určitém čase?
existuje programek timeout
25.5.2005 10:09 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Jak zabít program po určitém čase?
A vypadá asi takhle...
#!/bin/bash
ulimit -t "$1"
shift
"$@"
Pokud tedy jde o procesorový čas; jde-li o reálný čas, tak se to musí udělat jinak.
25.5.2005 11:12 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: Jak zabít program po určitém čase?
Třeba
#!/bin/sh
timeout=$1
shift
"$@" &
pid=$!
sleep $timeout
kill $pid
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
25.5.2005 11:24 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Jak zabít program po určitém čase?
Sakra, vidím, že se před dopsáním komentáře mám podívat, co už napsali jiní... Ale je proměnná pid k něčemu? $! je PID příkazu na pozadí, což sleep není.
25.5.2005 11:49 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: Jak zabít program po určitém čase?
Jojo, když já těm proměným bashe nějak nevěřím nebo co :-)
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.

Založit nové vláknoNahoru

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

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.