abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 21:55 | Nová verze

    Byl vydán Fedora Asahi Remix 40, tj. linuxová distribuce pro Apple Silicon vycházející z Fedora Linuxu 40.

    Ladislav Hagara | Komentářů: 7
    včera 20:22 | IT novinky

    Představena byla služba Raspberry Pi Connect usnadňující vzdálený grafický přístup k vašim Raspberry Pi z webového prohlížeče. Odkudkoli. Zdarma. Zatím v beta verzi. Detaily v dokumentaci.

    Ladislav Hagara | Komentářů: 0
    včera 12:55 | Nová verze

    Byla vydána verze R14.1.2 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5). Přehled novinek v poznámkách k vydání, podrobnosti v seznamu změn.

    JZD | Komentářů: 0
    7.5. 18:55 | IT novinky

    Dnešním dnem lze již také v Česku nakupovat na Google Store (telefony a sluchátka Google Pixel).

    Ladislav Hagara | Komentářů: 10
    7.5. 18:33 | IT novinky

    Apple představil (keynote) iPad Pro s čipem Apple M4, předělaný iPad Air ve dvou velikostech a nový Apple Pencil Pro.

    Ladislav Hagara | Komentářů: 2
    7.5. 17:11 | Nová verze

    Richard Biener oznámil vydání verze 14.1 (14.1.0) kolekce kompilátorů pro různé programovací jazyky GCC (GNU Compiler Collection). Jedná se o první stabilní verzi řady 14. Přehled změn, nových vlastností a oprav a aktualizovaná dokumentace na stránkách projektu. Některé zdrojové kódy, které bylo možné přeložit s předchozími verzemi GCC, bude nutné upravit.

    Ladislav Hagara | Komentářů: 0
    7.5. 13:44 | Komunita

    Free Software Foundation zveřejnila ocenění Free Software Awards za rok 2023. Vybráni byli Bruno Haible za dlouhodobé příspěvky a správu knihovny Gnulib, nováček Nick Logozzo za front-end Parabolic pro yt-dlp a tým Mission logiciels libres francouzského státu za nasazování svobodného softwaru do praxe.

    Fluttershy, yay! | Komentářů: 0
    7.5. 13:11 | IT novinky

    Před 10 lety Microsoft dokončil akvizici divize mobilních telefonů společnosti Nokia a pod značkou Microsoft Mobile ji zanedlouho pohřbil.

    Ladislav Hagara | Komentářů: 2
    6.5. 21:33 | Komunita

    Fedora 40 release party v Praze proběhne v pátek 17. května od 18:30 v prostorách společnosti Etnetera Core na adrese Jankovcova 1037/49, Praha 7. Součástí bude program kratších přednášek o novinkách ve Fedoře.

    Ladislav Hagara | Komentářů: 5
    6.5. 21:11 | IT novinky

    Stack Overflow se dohodl s OpenAI o zpřístupnění obsahu Stack Overflow pro vylepšení OpenAI AI modelů.

    Ladislav Hagara | Komentářů: 1
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (64%)
     (7%)
     (13%)
     (16%)
    Celkem 141 hlasů
     Komentářů: 10, poslední včera 17:35
    Rozcestník

    Dotaz: Změna rodiče

    26.7.2004 16:20 Martin
    Změna rodiče
    Přečteno: 112×
    Dobrý den, mám následující dotaz.Je v Linuxu funkční volání jádra "setpgrp" stejně jako je to běžně uváděno pro Unix? Mám třeba: .. .. ..

    main(void) ( -vím,to je špatná závorka- . . setpgrp(); while(1) -a třeba nekonečný cyklus-- Po překladu program spustim a čekal bych že jako rodiče bude mít proces "init" ale není tomu tak, podle vypisu ps apod. je jeho rodičem stále bash ze kterého byl spuštěn. Pokud mi někdo napíše co zapomínám nebo nevím budu rád, děkuji velmi. M.

    Odpovědi

    26.7.2004 16:24 Martin
    Rozbalit Rozbalit vše Re: Změna rodiče
    Ještě jsem zapomněl napsat, jádro je 2.4.19.Díky.
    26.7.2004 16:51 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Změna rodiče
    setpgrp nasatvuje pgid a ne ppid! ps xf vypisuje zavislost mezi procesi na zaklade ppid. setpgrp je to co dela nohup a schvalne si zkus, ze zustane child bashe a pritom pri ukonceni nedostane SIGHUP. Prave k tomu je urceno pgid.
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    26.7.2004 17:48 Martin
    Rozbalit Rozbalit vše Re: Změna rodiče
    Děkuji za odpověď, já jsem tomu původně rozumněl tak že zavolání setpgrp změní volající proces na vedoucího skupiny a jeho parent bude proces s pid 1, tedy init. Alespoń se to tak píše v literatuře o Unixu.Docela by mne zajímalo jestli to je rozdíl mezi linuxem a unixem.Jinak díky.M.
    27.7.2004 15:56 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Změna rodiče
    setpgrp() je alias na volání setpgid(0,0) což zamená, že se změní pgid aktuálního procesu na 0 jak je ostatně jasně posáno v man stránce. Tedy parent group se nastaví sheduler jádra, což odpovídá přesně tomu co se píše v literatuře o unixu (Linuxové jádro je trochu odlišné v tom, že init proces je proces jako každý jiný narozdíl od některých unixů kde je procest init přímo v jádře a má pid=0!), problém je v tom, že zaměňujete parent proces id (ppid) za parent (terminal) group id (pgid) což jsou dvě naprosto odlišné věci. Asi by jste tu literaturu měl prostudovat pozorněji znova, nebo jste možná šáhl po špatné literatuře.
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    27.7.2004 20:16 Martin
    Rozbalit Rozbalit vše Re: Změna rodiče
    Velmi Vám děkuji.Já jsem četl UNIX POSIX PLAN 9 od Lu. Skoč. a špatně jsem to interpretoval. Pgid je tedy čislo které mi vrátí getpgrp(). To ale nebývá 0, scheduler asi vždy dosadí pgid jako číslo blízké pgid původní terminálové skupiny kam proces patřil před voláním sepgrp(). Ale ano, oni vlastně píšou je-li požadavek na nové pgid 0 tak je použit pid volajícího procesu.Aha. Také mne překvapilo že pgid procesu "pod" bashem má pgid jako svůj pid, myslel jsemže bash je lídrem který otevřel terminál a pgid procesu "pod ním" bude mít pgid jako má bash pid,tedy vlastně jako je pid bashe,aha ale já vlastně nevím jestli bash sám nevolá setpgrp(). Zkoušel jsem pustit procesy na pozadí pod bashem a ty které volali setpgrp() po ukončení bashe pokračovali dál ostatní asi dostali SIGHUP jak jste mi psal a skončili. No a podobně bych tedy čekal že když normálně rozjedu dva procesy kde rodič zavolá setpgrp(),bude tedy lídrem skupiny(?) a bude mít normálně pod sebou child,tak když rodič zavolá exit(), měl by skončit i child ???. Jinak Vám strašně děkuju, rád bych se ravanšoval ale navím jak.Martin
    28.7.2004 08:48 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Změna rodiče
    UNIX POSIX PLAN 9 od Lu. Skoč. - wow, to jsem četl taky :-D Dost dobrá knížka i když místy ukázkové zdrojáky obsahují drobnou chybku. Sheduler nic nedosazuje, dosazuje jádro a ten dosadí pgid rodičovského procesu při fork() (přesněji ho prostě nechá stejné :-), skopíruje záznam procesu v jádře, tak jak je, jen mu dá nové pid a nastaví ppid na rodiče - to vám ostatně vrátí fork() ). Ten rodič musí zavolat setpgrp() samozřejmě před fork() svých potomků, no a potom při ukončení terminálu by měl dostat SIGHUP a všichni jeho potomci, jak je to s exit() nevím. To by chtělo asi vyzkoušet.
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    28.7.2004 17:10 Martin
    Rozbalit Rozbalit vše Re: Změna rodiče
    No já jsem se teď dočetl že když bash spouští další proces tak opravdu postupuje fork,setpgrp,exec. Proto je pgid nového procesu totožné jako pid nového procesu.To jsem nevěděl. Já vlastně nechápu nějakou základní věc.Všude v literatuře se uvádí že child je existenčně zavislý na rodiči.Dokonce se přímo uvádí toto jako výhoda,neboť u rozsáhlého programového systému stačí ukončit rodiče a automaticky skončí všechny "jeho" dětské procesy. Jinak ovšem když naprogramujete jednoduše parent a jeho child a necháte parent dříve ukončit, child potom pokračuje a jako "sirotek" má pgid rovno 1,tedy parent je init. jak to vlastně koresponduje s onou existenční závislostí ?? M.
    29.7.2004 08:23 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Změna rodiče
    No s tou závislostí jsem to taky moc nepochopil. Luděk píše, něco v tom smyslu, že když zanikne rodič a jeho potomci jsou v jeho pgid (jejich pgid == pid toho rodiče) tak by měli skončit s ním (jestli to udělá jádro, nebo to musí udělat sám třeba killpg, nevím). Pokud ale děti jsou v jiné (třeba své vlastní) pgid, tak by mělo jádro samo po smrti rodiče nastavit jejich ppid na 1. To chce odzkoušet nebo nastudovat. Skočovský je dobrý, ale jak říkám, jsou tam občas chybky a nepřesnosti a hlavně je to jen takový úvod. Pro hloubkové proniknutí to asi chce nějaký skripta o unix OS, nebo přímo normu.
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    29.7.2004 22:42 #2453 | skóre: 21
    Rozbalit Rozbalit vše Re: Změna rodiče
    Taky bych vymenil rodice...
    30.7.2004 12:32 Martin
    Rozbalit Rozbalit vše Re: Změna rodiče
    Ovšem zavolat setpgrp z okna (nebo dokonce z wokna) Vám tedy nepomůže, protože jak už jsem pochopil se tím pgid nemění. Nojo, ono pokud se vedoucímu skupiny pošle kill -9 -jeho pid (tedy záporná hodnota jeho pid), tak všichni jeho potomci skončí, ovšem ti potomci kteří dříve volali setpgrp tak ti běží dál, aha aha tak to je stopa, možná že to někdy snad i pochopim. Martin
    30.7.2004 14:13 Martin
    Rozbalit Rozbalit vše Re: Změna rodiče
    v té první větě má být ppid samozřejmě.M

    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.