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í
×
    včera 23:55 | Komunita

    Ubuntu 26.04 LTS bude (𝕏) Resolute Raccoon (rezolutní mýval).

    Ladislav Hagara | Komentářů: 0
    včera 21:00 | Nová verze

    Netwide Assembler (NASM) byl vydán v nové major verzi 3.00. Přehled novinek v poznámkách k vydání v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 0
    včera 20:11 | Komunita

    Linuxová distribuce Frugalware (Wikipedie) ke konci roku 2025 oficiálně končí.

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

    Byla vydána nová verze 3.0.6 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP bude brzy k dispozici také na Flathubu.

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

    Americký výrobce čipů AMD uzavřel s americkou společností OpenAI smlouvu na několikaleté dodávky vyspělých mikročipů pro umělou inteligenci (AI). Součástí dohody je i předkupní právo OpenAI na přibližně desetiprocentní podíl v AMD.

    Ladislav Hagara | Komentářů: 1
    včera 12:22 | Nová verze Ladislav Hagara | Komentářů: 0
    5.10. 20:00 | Komunita

    Byly zpracovány a na YouTube zveřejněny videozáznamy z konference LinuxDays 2025.

    Ladislav Hagara | Komentářů: 0
    4.10. 15:22 | IT novinky

    Na konferenci LinuxDays 2025 byl oficiálně představen nový router Turris Omnia NG.

    Ladislav Hagara | Komentářů: 34
    4.10. 05:22 | Komunita

    Přímý přenos (YouTube) z konference LinuxDays 2025, jež probíhá tento víkend v Praze v prostorách FIT ČVUT. Na programu je spousta zajímavých přednášek.

    Ladislav Hagara | Komentářů: 16
    3.10. 22:44 | IT novinky

    V únoru loňského roku Úřad pro ochranu osobních údajů pravomocně uložil společnosti Avast Software pokutu 351 mil. Kč za porušení GDPR. Městský soud v Praze tuto pokutu na úterním jednání zrušil. Potvrdil ale, že společnost Avast porušila zákon, když skrze svůj zdarma dostupný antivirový program sledovala, které weby jeho uživatelé navštěvují, a tyto informace předávala dceřiné společnosti Jumpshot. Úřad pro ochranu osobních údajů

    … více »
    Ladislav Hagara | Komentářů: 11
    Jaké řešení používáte k vývoji / práci?
     (38%)
     (45%)
     (15%)
     (17%)
     (22%)
     (15%)
     (18%)
     (16%)
     (15%)
    Celkem 181 hlasů
     Komentářů: 12, poslední 4.10. 20:35
    Rozcestník

    Pythonský démon

    27.9.2005 10:46 | Přečteno: 1370×

    Python znamená anglicky nějakého hada, myslím že hroznýše. Taky to znamená věštec. Známe pojem pýthie, to je byla věštkyně v Delfách. Nebo ovšem hroznýška. Správná česká výslovnost Pythona asi bude [pýton]. [paitn] je taky správná, ale anglická. Pythona mám rád, napsal jsem si v něm démona. Mám tam takovéhle řádky:

    import os
    import signal
    import re
    import time
    import string
    import sys

    konrad = re.compile(r"\r*\n*$")
    pidfile = "/var/run/dozorce.pid"
    krok = 120 # interval mezi testy v s

    A o kousek dál tohle, aby se náhodou nespustil dvakrát:

    if os.path.exists(pidfile) :
       sou = open(pidfile,"r")
       r = sou.readline()
       sou.close()
       cislo = eval(konrad.sub("",r))

       try:
          os.kill(cislo,0)
       except OSError:
         # pidfile jsme stastne nasli, ale k nemu proces nebezi
         pass
       else:
         sys.stderr.write( "dozorce konci protoze proces %d uz bezi\n"%cislo )
       sys.exit(1)


    A potom ještě tohle, aby se z něj udělal démon: vytvořím synovský proces a udělám ho vedoucím seance, čímž se zároveň odpojí od tty. Hodilo by se ještě přesměrování stdin, stdout, stderr někam jinam než je tty, ale to se dá i ve startovní skriptu.



    # spustime se jako demon
    p = os.fork()
    if p > 0:
       os.waitpid(p,os.WNOHANG)
       sys.exit(0)
    elif p == 0:
       # jsem synovsky proces
       os.setsid()
       sou = open(pidfile,"w")
       sou.write("%s"%os.getpid())
       sou.close()
    else:
       sys.stderr.write( "dozorce nezdareny fork\n" )
       sys.exit(2)


    Načež si udělám nekonečný cyklus, vždycky udělám co potřebuju a dvě minuty počkám. Zatím potřebuju hlídat na serveru, jestli mi tam někdo nežere moc paměti. Když tak mu pošlu mail, když je to ještě horší, tak ho rovnou zabiju.

    Do crona jsem si dal


    33 * * * * kill -0 $(cat /var/run/dozorce.pid) || /etc/init.d/dozor start

    Možná je to zbytečné, třeba crona taky nerestartuju každou hodinu z crona. Ještě to nespadlo. Při zkušebním běhu jsem si dal nižší závoru a zabilo mi to X server , u kterého jsem zrovna seděl. Jojo, hlavně že to funguje.

           

    Hodnocení: -

    zatím nehodnoceno
            špatnédobré        

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

    Komentáře

    Vložit další komentář

    27.9.2005 11:12 Dag | skóre: 25 | blog: bzuk
    Rozbalit Rozbalit vše python
    Python je latinské jméno pro krajtu. Hroznýš je Boa, i když ta podčeleď Boinae je hodně veliká, Anakonda je Boinae také jmenuje se Eunectes. A tak...
    To jen BTW, pokud, by to někoho zajímalo. Ale program se, myslím, jmenuje po Monthy Python. Ti ale mají jméno (pokud vím) po krajtě.(?)
    27.9.2005 11:42 Jan Kundrát (jkt) | skóre: 27 | blog: jkt | Praha - Bohnice
    Rozbalit Rozbalit vše Re: python
    "Another important goal of the Python developers is making Python fun to use. This is reflected in the origin of the name (after the television series Monty Python's Flying Circus); in the common practice of using Monty Python references in example code; and in an occasionally playful approach to tutorials and reference materials." -- Wikipedia
    27.9.2005 12:09 Dag | skóre: 25 | blog: bzuk
    Rozbalit Rozbalit vše Re: python
    Jo, já tušil že po Monty Pythonech, ale mám pocit, že ti se zase jmenují po krajtě (ona se tam chlapcům vyskytovala na obrázcích). Ale ono je to vcelku putna. :-)
    27.9.2005 15:29 krnoha | skóre: 10 | blog: prizpevy
    Rozbalit Rozbalit vše Re: python
    "Another important goal of the Python developers is making Python fun to use. "

    Tak, tohle na mě dejchlo před deseti lety, když jsem se náhodou dostal ke skvěle udržovanému unixovému prostředí v CERN a nazdařbůh jsem napsal

    cd /usr/local/bin
    ls
    

    a viděl jsem tam něco, co vypadalo jako věštkyně. Občas je s ním vážně psina.

    27.9.2005 13:11 zde | skóre: 9 | blog: Linuch | Brno
    Rozbalit Rozbalit vše Asi OK, ale
    Otestovat pomoci kill(pid, 0) zda dany PID bezi je zrejme dostatecne, ale PIDy se recyklujou. Ja ale beh demona testuju jinak:
        f = os.open (pidfile, os.O_RDWR | os.O_CREAT, 0644)
        try:
            fcntl.flock (f, fcntl.LOCK_EX | fcntl.LOCK_NB)
            # we're first!
            ...
        except IOError:
            # locked: already running
            pid = int (os.read (f, 5))
            sys.stderr.write ('%s is running, pid %d\n' % (app, pid))
            ...
    
    Táto, ty de byl? V práci, já debil.
    daemonize.py
    tato daemonizacia je podla mna trosku nazornejsia, ale inak celkom sympaticke.

    Založit nové vláknoNahoru

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