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 00:55 | IT novinky

    Josef Průša představil novou velkoformátovou uzavřenou CoreXY 3D tiskárnu Prusa CORE One L a nový open source standard chytrých cívek OpenPrintTag i s novou přepracovanou špulkou.

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

    Na GOG.com běží Autumn Sale. Při té příležitosti je zdarma hororová počítačová hra STASIS (ProtonDB: Platinum).

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

    Ubuntu 25.10 má nově balíčky sestavené také pro úroveň mikroarchitektury x86-64-v3 (amd64v3).

    Ladislav Hagara | Komentářů: 5
    včera 01:22 | Nová verze

    Byla vydána verze 1.91.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

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

    Ministerstvo průmyslu a obchodu vyhlásilo druhou veřejnou soutěž v programu TWIST, který podporuje výzkum, vývoj a využití umělé inteligence v podnikání. Firmy mohou získat až 30 milionů korun na jeden projekt zaměřený na nové produkty či inovaci podnikových procesů. Návrhy projektů lze podávat od 31. října do 17. prosince 2025. Celková alokace výzvy činí 800 milionů korun.

    Ladislav Hagara | Komentářů: 5
    30.10. 23:44 | Komunita

    Google v srpnu oznámil, že na „certifikovaných“ zařízeních s Androidem omezí instalaci aplikací (včetně „sideloadingu“) tak, že bude vyžadovat, aby aplikace byly podepsány centrálně registrovanými vývojáři s ověřenou identitou. Iniciativa Keep Android Open se to snaží zvrátit. Podepsat lze otevřený dopis adresovaný Googlu nebo petici na Change.org.

    Ladislav Hagara | Komentářů: 0
    30.10. 15:22 | Nová verze

    Byla vydána nová verze 18 integrovaného vývojového prostředí (IDE) Qt Creator. S podporou Development Containers. Podrobný přehled novinek v changelogu.

    Ladislav Hagara | Komentářů: 2
    30.10. 12:55 | Nová verze

    Cursor (Wikipedie) od společnosti Anysphere byl vydán ve verzi 2.0. Jedná se o multiplatformní proprietární editor kódů s podporou AI (vibe coding).

    Ladislav Hagara | Komentářů: 1
    30.10. 02:55 | Nová verze

    Google Chrome 142 byl prohlášen za stabilní. Nejnovější stabilní verze 142.0.7444.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 20 bezpečnostních chyb. Za nejvážnější z nich bylo vyplaceno 50 000 dolarů. Vylepšeny byly také nástroje pro vývojáře.

    Ladislav Hagara | Komentářů: 0
    30.10. 01:22 | IT novinky Ladislav Hagara | Komentářů: 0
    Jaké řešení používáte k vývoji / práci?
     (35%)
     (48%)
     (19%)
     (19%)
     (22%)
     (16%)
     (21%)
     (16%)
     (18%)
    Celkem 291 hlasů
     Komentářů: 14, poslední 14.10. 09:04
    Rozcestník

    Dotaz: Perl skript jako daemon

    10.4.2009 09:26 hates | skóre: 30 | blog: Jak_jsem_se_dostal_k_linuxu
    Perl skript jako daemon
    Přečteno: 555×

    Zdravim. mam takovy problem je vubec mozne a popripade jak to zaridit aby mi perl skript cekal jako daemon a cetl data z pojmenovane roury ? Jde mi o to aby vse co spadne z jedne strany do roury z druhe strany vpadlo do toho skriptu a ten si tenhle vstup precte a zpracuje a bude cekat na dalsi vstup. Jak vyresit tenhle skript. hledam, ale nemuzu nic najit. asi hledam spatne. Prosim o nakopnuti. Diky za radu.

    Odpovědi

    10.4.2009 09:34 dustin | skóre: 63 | blog: dustin
    Rozbalit Rozbalit vše Re: Perl skript jako daemon

    Pokud by místo pojmenované roury mohl být síťový port, lze využít klasický inet démon. Tvůj skript jen čte ze stdin a zapisuje na stdout, spouštění skriptu a předávání dat již zařizuje inet démon, viz man inetd. Dělal jsem takto i služby ve windows na cygwinu :)

    10.4.2009 09:55 hates | skóre: 30 | blog: Jak_jsem_se_dostal_k_linuxu
    Rozbalit Rozbalit vše Re: Perl skript jako daemon

    sitovy daemon  nelze pouzit. to bych neresil potom touhle berlickou.

     

    10.4.2009 10:00 dustin | skóre: 63 | blog: dustin
    Rozbalit Rozbalit vše Re: Perl skript jako daemon

    Pokud jde o to, aby ten skript běžel jen jednou (např. si udržuje nějaké globální proměnné), pak by přeci mělo stačit číst v perlu ze stdin, zapisovat na stdout a spustit s přesměrování vstupu/výstupu z/do pipy. Možná jsem to nepochopil, ale trochu nevidím ten problém.

    10.4.2009 10:13 hates | skóre: 30 | blog: Jak_jsem_se_dostal_k_linuxu
    Rozbalit Rozbalit vše Re: Perl skript jako daemon

    jde o to aby ten skript bezel neustale a cekal na dalsi a dalsi vstupy. funguje to asi takhle

     

    program loguje do pipe -----------> pojmenovana roura ----------------------> skript, ktery posloucha a zpracovava vstupy, ktere padaji do roury
    10.4.2009 10:18 dustin | skóre: 63 | blog: dustin
    Rozbalit Rozbalit vše Re: Perl skript jako daemon

    Když bude číst v nekonečné smyčce, tak po spuštění bude běžet stále. Když jej budeš spouštět v nekonečné smyčce, po shození zase najede, dokud nezabiješ shell té smyčky.

    10.4.2009 10:36 hates | skóre: 30 | blog: Jak_jsem_se_dostal_k_linuxu
    Rozbalit Rozbalit vše Re: Perl skript jako daemon

    tohle jsem uz poresil, ale jak by asi mel vypadat radek v perlu, ktery si prijme ten vstup pokud jej ctu ze STDIN tak mi to nic nepise

     

    skript vypada asi takhle

     

    #!/usr/bin/perl -w my $FILE    = '/var/log/pokus.log'; 
    open(LOG, ">>$FILE");

    while() {
        $vstup = <STDIN>;
        print LOG "$vstup\n";
    } close LOG;

     a spoustim jej takhle

     ./skript.pl < pojmenovana_roura

    Nicmene pokud do roury dopadnou nejake vstupy do souboru pokus.log se mi nic nezapise. Ale kdyz pouziji prikaz cat pojmenovana_roura, tak se mi data z ni zobrazuji na STDOUT. Delam nekde chybu ?

    10.4.2009 13:53 ams
    Rozbalit Rozbalit vše Re: Perl skript jako daemon

    #!/usr/bin/perl
    use warnings;
    use strict;

    my $FILE = '/var/log/pokus.log';
    open(my $LOG, ">>$FILE") or die "Cannot open $FILE: $!";
    select((select($LOG),$|=1)[0]);  # Toto je dulezity radek - vypnout bufrovani vystupu

    while() {
            my $vstup = <>;
            next unless defined $vstup;
            print $LOG $vstup;
    }

    close $LOG;

    10.4.2009 14:26 hates | skóre: 30 | blog: Jak_jsem_se_dostal_k_linuxu
    Rozbalit Rozbalit vše Re: Perl skript jako daemon

    super to bylo presne ono. diky za namet. se zbytkem si jiz poradim.

    10.4.2009 16:33 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: Perl skript jako daemon
    Klasický problém s bufferováním. Ono se to tam zapisuje, ale uvidíte to až po 4k balíku nebo tak nějak.

    Tím odporným selectem se to řešilo možná před 10 lety. Moderněji by to bylo takto:
    open(my $log, '>>', $FILE);
    $log->autoflush(0);
    

    ...a pak všude používat $log místo LOG

    Pak máte další problém s tím nekonečným cyklem. Pokud skončí zapisující proces, budete dostávat EOF, a Váš skript se zacyklí na 100% CPU. Buď chcete v tom případě program ukončit, nebo čekat na další vstupy, ale s nějakou prodlevou, abyste nežral CPU (nevím, jestli se nemusí v tomto případě roura zavřít a znovu otevřít).

    Jinak dotaz se jmenuje perl skript jako daemon, chcete tedy aby se program choval jako démon, tj. běžel bez terminálu a na pozadí?
    In Ada the typical infinite loop would normally be terminated by detonation.
    11.4.2009 06:56 hates | skóre: 30 | blog: Jak_jsem_se_dostal_k_linuxu
    Rozbalit Rozbalit vše Re: Perl skript jako daemon

    presne tak jedna se mi o to aby bezel na pozadi a pouze zpracovaval data, ktera protecou rourou

     

    11.4.2009 07:19 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: Perl skript jako daemon
    Tak na pozadí ho můžete dát několika způsoby:

    1) nohup

    2) /etc/inittab

    3) implementace démonizace ve skriptu - fork, setsid, chroot, setuid, ...
    In Ada the typical infinite loop would normally be terminated by detonation.
    11.4.2009 09:18 happy barney | skóre: 34 | blog: dont_worry_be_happy
    Rozbalit Rozbalit vše Re: Perl skript jako daemon

    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.