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 12:22 | Nová verze

    Multiplatformní emulátor terminálu Ghostty byl vydán ve verzi 1.2 (𝕏, Mastodon). Přehled novinek, vylepšení a nových efektů v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    dnes 00:11 | Nová verze

    Byla vydána nová verze 4.5 (𝕏, Bluesky, Mastodon) multiplatformního open source herního enginu Godot (Wikipedie, GitHub). Přehled novinek i s náhledy v příspěvku na blogu.

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

    Byla vydána verze 3.0 (Mastodon) nástroje pro záznam a sdílení terminálových sezení asciinema (GitHub). S novou verzí formátu záznamu asciicast v3, podporou live streamingu a především kompletním přepisem z Pythonu do Rustu.

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

    Canonical oznámil, že bude podporovat a distribuovat toolkit NVIDIA CUDA (Wikipedie) v Ubuntu.

    Ladislav Hagara | Komentářů: 0
    včera 20:44 | IT novinky

    Tržní hodnota americké společnosti Alphabet, která je majitelem internetového vyhledávače Google, dnes poprvé překonala hranici tří bilionů dolarů (62,1 bilionu Kč). Alphabet se připojil k malé skupině společností, které tuto hranici pokořily. Jsou mezi nimi zatím americké firmy Nvidia, Microsoft a Apple.

    Ladislav Hagara | Komentářů: 2
    včera 20:33 | IT novinky

    Spojené státy a Čína dosáhly dohody ohledně pokračování populární čínské platformy pro sdílení krátkých videí TikTok v USA. V příspěvku na síti Truth Social to dnes naznačil americký prezident Donald Trump. Dosažení rámcové dohody o TikToku vzápětí oznámil americký ministr financí Scott Bessent, který v Madridu jedná s čínskými představiteli o vzájemných obchodních vztazích mezi USA a Čínou. Bessentova slova později potvrdila také čínská strana.

    Ladislav Hagara | Komentářů: 0
    včera 16:55 | Komunita

    MKVToolNix, tj. sada nástrojů pro práci s formátem (medialnym kontajnerom) Matroska, byl vydán ve verzi 95.0. Podpora přehrávání formátu Matroska míří do Firefoxu [Bug 1422891, Technický popis]. Přehrávání lze již testovat ve Firefoxu Nightly.

    Ladislav Hagara | Komentářů: 0
    13.9. 17:33 | Pozvánky

    Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 211. sraz, který proběhne v pátek 19. září od 18:00 ve Studentském klubu U Kachničky na Fakultě informačních technologií Vysokého učení technického na adrese Božetěchova 2/1. Na srazu proběhne přednáška Jiřího Eischmanna o nové verzi prostředí GNOME 49. Nemáte-li možnost se zúčastnit osobně, přednáškový blok bude opět streamován živě na server VHSky.cz a následně i zpřístupněn záznam.

    Ladislav Hagara | Komentářů: 0
    13.9. 01:33 | IT novinky

    Microsoft se vyhnul pokutě od Evropské komise za zneužívání svého dominantního postavení na trhu v souvislosti s aplikací Teams. S komisí se dohodl na závazcích, které slíbil splnit. Unijní exekutivě se nelíbilo, že firma svazuje svůj nástroj pro chatování a videohovory Teams se sadou kancelářských programů Office. Microsoft nyní slíbil jasné oddělení aplikace od kancelářských nástrojů, jako jsou Word, Excel a Outlook. Na Microsoft si

    … více »
    Ladislav Hagara | Komentářů: 10
    12.9. 14:00 | Nová verze

    Samba (Wikipedie), svobodná implementace SMB a Active Directory, byla vydána ve verzi 4.23.0. Počínaje verzí Samba 4.23 jsou unixová rozšíření SMB3 ve výchozím nastavení povolena. Přidána byla podpora SMB3 přes QUIC. Nová utilita smb_prometheus_endpoint exportuje metriky ve formátu Prometheus.

    Ladislav Hagara | Komentářů: 0
    Pro otevření více webových stránek ve webovém prohlížečí používám
     (81%)
     (7%)
     (3%)
     (3%)
     (4%)
     (2%)
    Celkem 183 hlasů
     Komentářů: 12, poslední 10.9. 13:00
    Rozcestník

    Dotaz: Jak spustit v bashi dva procesy najednou (paralelně)

    3.5.2010 12:32 Myšpulín | skóre: 8
    Jak spustit v bashi dva procesy najednou (paralelně)
    Přečteno: 762×
    Mám skript na zpracování souborů a potřeboval bych udělat, aby to spustilo dva procesy nejednou a ne aby to čekalo až jeden zkončí a pak to pustilo druhý. Chtěl bych pustit paralelně dvě smyčky, které by mi provedly konverzi wav souborů na mp3 pralelně ve dvou adresářích (kvůli úspoře času). Obávám se, že když ve smyčkách pustím proces na pozadí, tak mi to vytvoří najednou tolik procesů, kolik je v adresáři souborů. Nevíte někdo, jak na to? Děkuji

    Řešení dotazu:


    Odpovědi

    3.5.2010 12:41 Messa | skóre: 39 | blog: Messa
    Rozbalit Rozbalit vše Re: Jak spustit v bashi dva procesy najednou (paralelně)
    Pustit něco na pozadí můžeš pomocí ampersandu (&), jak ses jistě dočetl v man stránce bashe.
    3.5.2010 12:54 Myšpulín | skóre: 8
    Rozbalit Rozbalit vše Re: Jak spustit v bashi dva procesy najednou (paralelně)
    No to jo, ale co to udělá ve smyčce typu for i in *.wav? Nespustí to náhodou počet procesů odpovídající počtu wav souborů? To by mi zahltilo pc. Potřebuji nějak udělat, aby to spustilo dvě úlohy najednou a ne aby to čekalo až první skončí a pak spustilo druhou. Nebo jak by se dalo ošetřit, aby se třetí proces spustil až ty první dva skončí?
    3.5.2010 15:03 Messa | skóre: 39 | blog: Messa
    Rozbalit Rozbalit vše Re: Jak spustit v bashi dva procesy najednou (paralelně)
    To záleží na tom, jak na to půjdeš. Říkáš převést mp3 ve dvou adresářích, jo?
    (for x in prvniadresar/*; do prevednamp3 "$x"; done) & for x in druhyadresar/*; do prevednamp3 "$x"; done; wait
    4.5.2010 08:42 Myšpulín | skóre: 8
    Rozbalit Rozbalit vše Re: Jak spustit v bashi dva procesy najednou (paralelně)
    Tohle vypadá celkem zajímavě. Jen bych potřeboval trochu ujasnit několik věcí. Proč je mezi těmi dvěma cykly jen jenen & ? Všude jsem četl, že pro řetězení příkazů se používají dva. Proč v není druhá smyčka v závorkách? A jakou funkci plní wait? Čeká až doběhne smyčka? Něco takového by mi asi stačilo.
    4.5.2010 11:18 cronin | skóre: 49
    Rozbalit Rozbalit vše Re: Jak spustit v bashi dva procesy najednou (paralelně)
    Precitaj si manual! Jeden ampersand nie je to iste co dva. Zatial co dva su logicky AND (druhy prikaz sa spusti iba ak prvy skoncil uspechom), jeden ampersand prave spusta prikaz na pozadi.
    4.5.2010 12:38 Messa | skóre: 39 | blog: Messa
    Rozbalit Rozbalit vše Re: Jak spustit v bashi dva procesy najednou (paralelně)
    Závorka má za důsledek spuštění v ní uvedených příkazů v novém procesu bashe. Za tím je ampersand, aby se nečekalo na dokončení tohoto procesu. Pak je druhý cyklus, který probíhá v aktuálním procesu (netřeba spouštět nový), a na konci wait, aby se případně počkalo na proces s prvním cyklem, pokud ještě nedoběhl.
    3.5.2010 13:07 kulik
    Rozbalit Rozbalit vše Re: Jak spustit v bashi dva procesy najednou (paralelně)
    No tak jak to popisujes to staci pustit skript na pozadi dvakrat, pro kazdy adresar jednou. Pripadne pokud nechces dva adresare muzes sestavit seznam souboru a predchodit jednomu procesu liche a druhemu sude. Nejsou to optimalni postupy (jeden proces ti muze skoncit driv a ve zbytku casu uz pojede jen jeden), ale jsou relativne jednoduche.
    3.5.2010 16:52 marek
    Rozbalit Rozbalit vše Re: Jak spustit v bashi dva procesy najednou (paralelně)

    Dobry den.

    Napsal jsem si na podobne pripay mustr:

    #!/bin/bash
    POTOMKU=5 #tady se nastavyje kolik tam potomku
    TMPFILE="$(mktemp -t -d ${0/*\//}.XXXXXXXXXX)" || exit 1
    mkfifo "$TMPFILE/fifo"
    #Ted bychom meli mit fifo v nasem tempu
    
    #Napoustime si potomky
    for ((y=1;y<=${POTOMKU};y++))
    do
            while i=$(cat "$TMPFILE/fifo" 2> /dev/null)
            do
                    [ "${i}" ] && (
                    #VASE FUNKCE
                    echo  "${y}->${i}<-"
                    )
            done &
    done
    #Ze standartniho vstupu cteme po radcich a cpeme jednotlive do fifo
    while read radka; do
            echo ${radka} > "$TMPFILE/fifo"
            sleep 0 #zpozdeni je nutno naladit, aby to predavalo potomkum pokud mozno po jednom radku, me staci ta nula
    done
    #pockame si, az se postupne dostanou vsechny potomci do faze, kdy cekaji na cat a tam je zabijeme
    ps --ppid $$ -o "%p %c" --no-headers | sed -e "s/\([0-9]\+\) ${0/*\//}$/\1/ p" -ed |\
    while read i; do
            until   kill $(ps --ppid "$(ps --ppid ${i} -o "%p" --no-headers)" -o "%p %c" --no-headers | sed -e "s/\([0-9]\+\) cat$/\1/ p" -ed) 2>/dev/null; do sleep 0.1; done
    done
    wait
    rm "$TMPFILE/fifo"
    rmdir $TMPFILE
    

    Ma to ale nekolik ALE:

    VASE FUNKCE musi ucekavat, ze prijde vice nez jeden radek. - je tam proste jednoduse neresitelna race condition

    Je to radkove orientovano - souborovy system ale povoluje vyceradkove nazvy souboru.

    Vyplati se to jen nekdy .....

    ocekava to na stdin, takze to spustite treba: ls ../ | ./worker, pokud si to teda nazvete worker

    Marek

    4.5.2010 07:05 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: Jak spustit v bashi dva procesy najednou (paralelně)
    To je dobré, ale ten make to dělá přecejen líp a jednodušeji.

    Cca takto:
    WAV=$(wildcard *.wav)
    MP3=$(WAV:.wav=.mp3)
    LAMEOPTS=--preset studio
    
    all: $(MP3)
    
    %.mp3: %.wav
            @echo '$@'
            @lame $(LAMEOPTS) $< $@
    
    Pak třeba:
    cd wavy; make -f /moje/Makefile -j 2
    In Ada the typical infinite loop would normally be terminated by detonation.
    4.5.2010 10:07 dustin | skóre: 63 | blog: dustin
    Rozbalit Rozbalit vše Re: Jak spustit v bashi dva procesy najednou (paralelně)
    Jojo, make umí spoustu užitečných věcí, jenom je boj pokaždé studovat, jak se ty vychytávky do makefilu přesně zapisují.
    Bedňa avatar 3.5.2010 21:34 Bedňa | skóre: 34 | blog: Žumpa | Horňany
    Rozbalit Rozbalit vše Re: Jak spustit v bashi dva procesy najednou (paralelně)
    Možno sa mýlim, ale má zmysel nejaké lepšie fjučúry ešte písať v bashy? Potom sú tie skripty fakt škaredé a keď sa k ním časom vrátiš, už ani nevieš čo je to a prečo je tam ten divný znak.
    KERNEL ULTRAS video channel >>>
    3.5.2010 23:40 chrono
    Rozbalit Rozbalit vše Re: Jak spustit v bashi dva procesy najednou (paralelně)
    Problém, že človek nevie, čo presne niektoré riadky robia, môže nastať v čomkoľvek (a nie len v Bash skriptoch).
    Bedňa avatar 4.5.2010 01:19 Bedňa | skóre: 34 | blog: Žumpa | Horňany
    Rozbalit Rozbalit vše Re: Jak spustit v bashi dva procesy najednou (paralelně)
    Ja som skôr narážal na syntax bashu, ak je tam niečo zlotejšie, tak to vyzerá fakt dosť hnusne.
    KERNEL ULTRAS video channel >>>
    AraxoN avatar 4.5.2010 13:06 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
    Rozbalit Rozbalit vše Re: Jak spustit v bashi dva procesy najednou (paralelně)
    Čo je hnusné a čo nie - to je subjektívna záležitosť.
    4.5.2010 13:51 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Jak spustit v bashi dva procesy najednou (paralelně)
    Smysl to má. Zkuste perl, Bash vám pak bude připadat přehledný.
    Bedňa avatar 4.5.2010 18:08 Bedňa | skóre: 34 | blog: Žumpa | Horňany
    Rozbalit Rozbalit vše Re: Jak spustit v bashi dva procesy najednou (paralelně)
    V rámci naučenia sa Perlu som pred pár rokmi spravil jednoduchý web a syntax mi nepripadala neprehľadná, asi je to fakt vec vkusu.
    KERNEL ULTRAS video channel >>>
    3.5.2010 23:44 chrono
    Rozbalit Rozbalit vše Re: Jak spustit v bashi dva procesy najednou (paralelně)
    Možno by sa dal použiť program make (otázne je, či sa ale oplatí vytvárať univerzálnejší súbor Makefile, hlavne ak ide o jednorázovú konverziu).
    4.5.2010 11:33 graviton
    Rozbalit Rozbalit vše Re: Jak spustit v bashi dva procesy najednou (paralelně)
    [cosi co generuje seznam souboru] | xargs -P 2 -n 1 preved_na_mp3.sh

    vylepseni: generujici cosi je find s -print0, xargs ma navic jeste -0 (resi ruzne mezery a jine uchylne znaky v nazvech)

    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.