Recent Changes - Search:

Oktatás

* Programozás 1
  + feladatsor
  + GitHub oldal

* Szkriptnyelvek
  + feladatsor
  + quick link

Teaching

* Programming 1 (BI)
  ◇ exercises
  ◇ quick link

* Scripting Languages
  ◇ exercises
  ◇ quick link

teaching assets


Félévek

* aktuális (2023/24/2)
* archívum


Linkek

* kalendárium
   - munkaszüneti napok '20
* tételsorok
* jegyzetek
* szakdolgozat / PhD
* ösztöndíjak
* certificates
* C lang.
* C++
* C#
* Clojure
* D lang.
* Java
* Nim
* Scala


[ edit | logout ]
[ sandbox | passwd ]

Py /

20160503a

retry 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 README.md állományt is.

Cloud City

  

Blogjaim, hobbi projektjeim

* The Ubuntu Incident
* Python Adventures
* @GitHub
* heroku
* extra
* haladó Python
* YouTube listák


Debrecen | la France


[ edit ]

Edit - History - Print *** Report - Recent Changes - Search
Page last modified on 2016 May 03, 13:10