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 15:22 | IT novinky

    Canonical oznámil (YouTube), že nově nabízí svou podporu Ubuntu Pro také pro instance Ubuntu na WSL (Windows Subsystem for Linux).

    Ladislav Hagara | Komentářů: 0
    dnes 13:11 | IT novinky

    Samsung představil svůj nejnovější chytrý telefon Galaxy Z TriFold (YouTube). Skládačka se nerozkládá jednou, ale hned dvakrát, a nabízí displej s úhlopříčkou 10 palců. V České republice nebude tento model dostupný.

    Ladislav Hagara | Komentářů: 0
    dnes 12:33 | Nová verze

    Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 25.11.1. Přehled novinek v Changelogu.

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

    Byla vydána nová verze 15.0 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 2
    dnes 03:00 | Nová verze

    UBports, nadace a komunita kolem Ubuntu pro telefony a tablety Ubuntu Touch, vydala Ubuntu Touch 24.04 1.1 a 20.04 OTA-11. Vedle oprav chyb a drobných vylepšení je řešen také středně závažný bezpečnostní problém.

    Ladislav Hagara | Komentářů: 0
    dnes 00:33 | IT novinky Ladislav Hagara | Komentářů: 0
    včera 16:00 | Komunita

    Fedora zve na dvoudenní testování (2. a 3. prosince), během kterého si můžete vyzkoušet nové webové uživatelské rozhraní (WebUI) projektu FreeIPA. Pomozte vychytat veškeré chyby a vylepšit uživatelskou zkušenost ještě předtím, než se tato verze dostane k uživatelům Fedory a celého linuxového ekosystému.

    Ladislav Hagara | Komentářů: 4
    včera 13:22 | IT novinky

    Eben Upton oznámil zdražení počítačů Raspberry Pi, kvůli růstu cen pamětí, a představil 1GB verzi Raspberry Pi 5 za 45 dolarů.

    Ladislav Hagara | Komentářů: 0
    včera 04:44 | Humor

    Linus Torvalds na YouTube kanálu Linus Tech Tips staví dokonalý linuxový počítač.

    Ladislav Hagara | Komentářů: 6
    včera 04:11 | Nová verze

    Po 9 týdnech vývoje od vydání Linuxu 6.17 oznámil Linus Torvalds vydání Linuxu 6.18. Přehled novinek a vylepšení na LWN.net: první a druhá polovina začleňovacího okna a Linux Kernel Newbies. Vypíchnout lze například podporu protokolu PSP (PSP Security Protocol, PSP encryption of TCP connections).

    Ladislav Hagara | Komentářů: 0
    Jaké řešení používáte k vývoji / práci?
     (34%)
     (47%)
     (19%)
     (18%)
     (23%)
     (16%)
     (24%)
     (16%)
     (18%)
    Celkem 423 hlasů
     Komentářů: 17, poslední 19.11. 21:57
    Rozcestník

    Dotaz: Neinteraktivni shell neukonci potomky kdyz skonci na signal

    mutable avatar 9.9.2009 22:23 mutable | skóre: 7 | blog: mutable_the_mutative
    Neinteraktivni shell neukonci potomky kdyz skonci na signal
    Přečteno: 279×

    Ahoj.

    Když pustím:

    sh -c 'yes'

    a pošlu SIGTERM právě spuštěnému shellu, sh i yes skončí.

    Když pustím:

    sh -c 'yes | sed "s/y/n/"'

    a pošlu SIGTERM právě spuštěnému shellu, sh skončí, ale yes a sed zůstanou běžet (init se stane předkem).

     

    Proč?

     

    V bash manpage je napsáno, že pokud je shell interaktivní a dostane SIGHUP, přepošle ho všem potomkům a počká na ně než se ukončí. Je možné dosáhnout něčeho podobného (tj. ukončit processy, které pod ním běží, když dostane nějaký signál, např. TERM) když je shell neinteraktivní (tj. když ho spustím s parametrem -c).

    Děkuju za pomoc.

     

    Odpovědi

    9.9.2009 22:45 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
    Rozbalit Rozbalit vše Re: Neinteraktivni shell neukonci potomky kdyz skonci na signal
    Proč?
    Neručím za to, že to vysvětluji správně - větší znalci mě snad opraví :-).

    Pokud pustím z terminálu
    sh -c 'yes'
    tak sh provede rovnou exec() a yes je tedy potomkem interaktivního shelu a tudíž dostane hezky ten signál přeposlaný.

    Pokud se ale spustí
    sh -c 'yes | sed "s/y/n/"'
    tak se musí vytvořit subshell (jsou nutné 2× fork() a 2× exec()) a ten už je neinteraktivní a signály asi ignoruje.

    Jak se tomu vyhnout mě ale nenapadá.
    I am always ready to learn although I do not always like to be taught. (W. Churchill)
    mutable avatar 9.9.2009 22:56 mutable | skóre: 7 | blog: mutable_the_mutative
    Rozbalit Rozbalit vše Re: Neinteraktivni shell neukonci potomky kdyz skonci na signal

    Diky, to je ono (v prvnim pripade v `ps -f' opravdu zadny sh neni, v druhem ano).

    Ten neinteraktivni shell signaly neignoruje, ale jenom nepokilluje potomky (coz je asi spravne, ale ted mi to zrovna nevyhovuje).

    10.9.2009 10:49 ams
    Rozbalit Rozbalit vše Re: Neinteraktivni shell neukonci potomky kdyz skonci na signal

    Muzete poslat signal cele skupine procesu, to zabije nejenom sh -c ale i jeho potomky. To se dela tak, ze prikazu kill predate zaporny PID. Napr., pokud PID procesu sh -c je 1234, pak kill -9 -1234 zabije i 'yes | sed'.

    10.9.2009 16:13 pakanek | skóre: 28 | Vyškov
    Rozbalit Rozbalit vše Re: Neinteraktivni shell neukonci potomky kdyz skonci na signal
    Pokud by to bylo ve skriptu a chtěl by jsi si po sobě uklidit, tak ještě můžeš použít trap, kterým definuješ akce, které se mají provést po obdržení specifického signálu.
    Všechno dobré je pro něco zlé.

    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.