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 16:11 | Zajímavý článek

    Odborníci z Penn State University zkoumají způsob ukládání informací na lepicí pásku. Principiálně by podle nich bylo možné kombinací odlepení a zpětného přilepení dosáhnout uložení informace, kterou opětovným odlepením dokážou přečíst. Výhodou je, že způsob uložení i přečtení je čistě mechanický. Zde o tom referují ve volně dostupném článku. Zajímavé bude sledovat zda se jim v rámci výzkumu podaří prokázat použitelnost i v jiné než

    … více »
    karkar | Komentářů: 6
    včera 13:00 | Zajímavý projekt

    Na GitHubu byl publikován reprodukovatelný návod, jak rozchodit Adobe Lightroom CC na Linuxu a Wine. Návod byl vytvořený pomocí AI Claude Code.

    Ladislav Hagara | Komentářů: 0
    včera 12:33 | Humor

    Pokud by někdo potřeboval Wayland kompozitor uvnitř počítačové hry Minecraft, aby mohl zobrazovat okna desktopových aplikací přímo v herním prostředí, může sáhnout po Waylandcraftu. Ukázka na YouTube.

    Ladislav Hagara | Komentářů: 1
    17.5. 23:55 | Zajímavý článek

    Uroš Popović v krátkém článku vysvětluje, co jsou emulátor terminálu, TTY a shell a jaké jsou mezi nimi rozdíly. Jde o první díl seriálu na jeho novém webu Linux Field Guide věnovaném nízkoúrovňové práci s linuxovými systémy.

    |🇵🇸 | Komentářů: 0
    16.5. 22:33 | Nová verze

    Byl vydán Debian 13.5, tj. pátá opravná verze Debianu 13 s kódovým názvem Trixie a Debian 12.14, tj. čtrnáctá opravná verze Debianu 12 s kódovým názvem Bookworm. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 13 a Debianu 12 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.

    Ladislav Hagara | Komentářů: 0
    15.5. 12:55 | Nová verze

    CiviCRM (Wikipedie) bylo vydáno v nové verzi 6.14.0. Podrobnosti o nových funkcích a opravách najdete na release stránce. CiviCRM je robustní open-source CRM systém navržený speciálně pro neziskové organizace, spolky a občanské iniciativy. Projekt je napsán v jazyce PHP a licencován pod GNU Affero General Public License (AGPLv3). Český překlad má nyní 45 % přeložených řetězců a přibližuje se milníku 50 %. Potřebujeme vaši pomoc, abychom se dostali dál. Pokud máte chuť přispět překladem nebo korekturou, přidejte se na platformu Transifex.

    jardaIT | Komentářů: 3
    15.5. 12:22 | Bezpečnostní upozornění

    Další lokální zranitelností Linuxu je ssh-keysign-pwn. Uživatel si může přečíst obsah souborů, ke kterým má právo ke čtení pouze root, například soubory s SSH klíči nebo /etc/shadow. V upstreamu již opraveno [oss-security mailing list].

    Ladislav Hagara | Komentářů: 2
    14.5. 17:22 | Komunita

    Singularity (YouTube) je nejnovější otevřený film od Blender Studia. Jedná se o jejich první 4K HDR film.

    Ladislav Hagara | Komentářů: 20
    14.5. 16:55 | Zajímavý software

    Vyšla hra Život Není Krásný: Poslední Exekuce (Steam, ProtonDB). Kreslená point & click adventura ze staré školy plná černého humoru a nekorektního násilí. Vžijte se do role zpustlého exekutora Vladimíra Brehowského a projděte s ním jeho poslední pracovní den. Hra volně navazuje na sérii Život Není Krásný.

    Ladislav Hagara | Komentářů: 30
    14.5. 14:00 | Zajímavý projekt

    Společnost Red Hat představila Fedora Hummingbird, tj. linuxovou distribuci s nativním kontejnerovým designem určenou pro vývojáře využívající AI agenty.

    Pinhead | Komentářů: 6
    Které desktopové prostředí na Linuxu používáte?
     (13%)
     (8%)
     (2%)
     (14%)
     (31%)
     (4%)
     (6%)
     (3%)
     (16%)
     (26%)
    Celkem 1650 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Dotaz: Problém s přesměrováním výstupu

    19.8.2012 09:44 jarousek
    Problém s přesměrováním výstupu
    Přečteno: 579×
    Ahoj, ahoj.

    Mám problém buď s velkým množstvím procesů nebo s přesměrováním výstupu. Mám tenhle řádek ve skriptu:
    su -c "./vlastni_skript | ./binarka -argument hodnota jiná &>> výstup" $1 &
    V $1 je UID. A když je shell uživatele /bin/bash, je potom ve výstupu ps tohle:
    user      6711  0.0  0.0  35860  1276 pts/0    S    09:25   0:00 su -c ./XXX.sh | /X/Y/Z/aaa -a b c &>> výstup user
    user      6713  0.0  0.0   9564  1296 pts/0    S    09:25   0:00  \_ bash -c ./XXX.sh | /X/Y/Z/aaa -a b c &>> výstup
    user      6714  0.0  0.0   9580   892 pts/0    S    09:25   0:00      \_ bash -c ./XXX.sh | /X/Y/Z/aaa -a b c &>> výstup
    user      6743  0.0  0.0   4340   576 pts/0    S    09:25   0:00      |   \_ sleep 10
    user      6715  126  3.5 1365364 143920 pts/0  Sl   09:25   0:17      \_ /X/Y/Z/aaa -a b c
    Na tom se mi nelíbí, že je tam nějak moc procesů. Jinak to funguje správně, skript každých 10 sekund zkontroluje, jestli existuje soubor, a když ano, vypíše ho na stdout a smaže. Jeho stdout je pajpnutý do té binárky, která to přijímá jako příkazy. A její stdout a stderr jsou přesměrované do souboru. (Mimochodem, neznáte nějakou shellovou verzi select()? Abych nemusel mít v tom skriptu nekonečnou smyčku, ale jen spustit něco, co se mi ukončí tehdy, kdy ten soubor začne existovat nebo přestane být prázdný? Díky) (Jo, ještě po ukončení té binárky tam všechny ostatní procesy zůstanou běžet, ale s tím se umím vyrovnat, zabiju je spolu s ukončením binárky.)

    No, a když jsem změnil shell uživatele na /bin/sh, je po spuštění v ps tohle:
    user      6818  0.0  0.0   3956   584 pts/0    S    09:34   0:00 /bin/sh ./XXX.sh
    user      6820  0.0  0.0   4340   576 pts/0    S    09:34   0:00  \_ sleep 10
    user      6819  196  3.2 1358692 130612 pts/0  Sl   09:34   0:15 /X/Y/Z/aaa -a b c
    To se mi líbí, jelikož je to už podstatně méně zbytečných procesů. Ale tohle nefunguje tak, jak má. Výstup té binárky jde na terminál, ze kterého jsem spustil skript, ve kterém je ten řádek se su na začátku.

    A když je uživatelův shell /bin/false (jak často vidím u některých démonů), nespustí se vůbec nic. Příčinu hádám na nedostatek vědomostí u mě.

    Prosím vás, neměli byste teda nějaké řešení, jak to udělat celé jinak, případně nějak, aby mi to s /bin/sh korektně přesměrovalo výstup? Díky

    Odpovědi

    19.8.2012 12:09 l4m4
    Rozbalit Rozbalit vše Re: Problém s přesměrováním výstupu
    su -c spouští příkaz v uživatelově shellu. Což, jak jsi už zjistil, může být kdeco. Je zapotřebí vzít celou tu konstrukci, kterou cpeš su -c, dát ji do skriptu (jehož interpreter je pak dán shbangem) a spouštět ten skript.

    Jinak &>> je bashismus (posixová konstrukce je >>out 2>&1), tudíž není divu, že to v jiném shellu nefunguje.
    19.8.2012 13:10 jarousek
    Rozbalit Rozbalit vše Re: Problém s přesměrováním výstupu
    Jo, díky. Teď tam mám jen procesy `bash ./skript` (a pod ním `sleep`) a tu binárku.

    Můžu ještě někoho požádat o pomoc s upravením toho skriptu? Obsah toho skriptu je teď takový:
    #/bin/sh
    while true; do test -e soubor && (cat soubor; rm soubor); sleep 10; done
    Ale jestli ono nebude spíš jednodušší napsat Céčkového démona... Nějak takového?
    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    
    int main()
    {
        int fd = open("soubor", O_RDONLY);
        // nějaký dup nebo dup2
        pid_t forkpid = fork();
        if(forkpid == 0)
        {
            // nějaký dup nebo dup2, abych dosáhl toho, že tenhle potomek bude mít na vstupu to, co rodič vyplivne na výstup
            exec();
        }
        else
        {
            // ještě nějaký dup/2?
            for(;;)
            {
                select();
                printf();
                if (access("/proc/forkpid", F_OK) == -1) exit(0);
                // něco dalšího na práci s tím souborem/rourou, kam budou chodit příkazy
            }
        }
        return 0;
    }
    Ale mám problém s těmi dupy a selectem. Mohl by mi s tím někdo pomoct, prosím? Na ty dupy určitě něco najdu, ale tím selectem si nejsem jistý. Zkoušel jsem to už párkrát a nikdy mi ten select() nefungoval. Fungoval tak, jak jsem chtěl, vždycky jenom na stdin. Když jsem po něm chtěl vědět, jestli jsou nějaká data v externím souboru, nikdy mi to neřekl. Ale to je asi chyba na mojí straně, v nedostatečně pozorném přečtení dokumentace. Mohl byste mi někdo dát příklad, jak to s tím select()em udělat, prosím? Díky
    19.8.2012 13:04 kolcon | skóre: 15 | blog: kolcon
    Rozbalit Rozbalit vše Re: Problém s přesměrováním výstupu
    zkus se podivat na incron, jestli by ti to nepomohlo...

    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.