Oktatás * Programozás 2 * Szkriptnyelvek * levelezősök Félévek Linkek * kalendárium |
Py /
20160503aretry parancs Linux alatt néha előfordul, hogy egy parancsot valamilyen oknál fogva nem tudunk lefuttatni, de a probléma néhány másodperc múlva "magától" elhárul, s ezután a parancs már helyesen lefut. Gondoljunk pl. egy webszerverre, ami túl van terhelve, s onnan szeretnénk letölteni egy állományt. Lehet, hogy csak többszöri próbálkozásra járunk sikerrel. Példa Vegyük a következő "probléma szimulátort", ami indítás után 20% eséllyel fog helyesen lefutni: #!/usr/bin/env python # encoding: utf-8 import random as r import sys def main(): if r.randint(1, 5) == 3: print "OK" else: print "error" sys.exit(1) ############################## if __name__ == "__main__": main() A program hibás lefutás esetén 1-es hibakóddal lép ki, míg normál lefutás esetén a szokásos 0-s hibakódot adja vissza. Bash alatt erről a következőképpen tudunk meggyőződni: $ ./problem.py error $ echo $? 1 $ ./problem.py OK $ echo $? 0 Feladat Írjunk egy olyan programot, ami paraméterül megkapja a futtatandó parancsot (aminek akár paraméterei is lehetnek!), majd ezt a parancsot addig hívogatja, amíg a parancs egyszercsak helyesen nem fut le. Két hívás között legyen egy kis várakozás (pl. 1 mp.). Vagyis: ha a parancs hibásan fut le, akkor újrapróbálkozunk. Ha helyesen futott le, akkor leállunk. A projektet ki kell majd tenni a GitHub-ra, s angolul le kell dokumentálni, vagyis mellékelni kell majd egy |
Blogjaim, hobbi projektjeim * The Ubuntu Incident [ edit ] |