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: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ářů: 3
    včera 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ářů: 0
    včera 17:55 | Nová verze

    AlmaLinux byl vydán v nové stabilní verzi 9.4 (Mastodon, 𝕏). S kódovým názvem Seafoam Ocelot. Přehled novinek v příspěvku na blogu a v poznámkách k vydání.

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

    Před 50 lety, 5. května 1974 v žurnálu IEEE Transactions on Communications, Vint Cerf a Bob Kahn popsali protokol TCP (pdf).

    Ladislav Hagara | Komentářů: 0
    včera 13:44 | Zajímavý článek

    Bylo vydáno do češtiny přeložené číslo 717 týdeníku WeeklyOSM přinášející zprávy ze světa OpenStreetMap.

    Ladislav Hagara | Komentářů: 0
    včera 04:00 | Nová verze

    Byla vydána (Mastodon, 𝕏) nová stabilní verze 2.10.38 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP je již k dispozici také na Flathubu.

    Ladislav Hagara | Komentářů: 6
    včera 00:22 | Komunita

    Google zveřejnil seznam 1220 projektů od 195 organizací (Debian, GNU, openSUSE, Linux Foundation, Haiku, Python, …) přijatých do letošního, již dvacátého, Google Summer of Code.

    Ladislav Hagara | Komentářů: 2
    5.5. 22:22 | IT novinky

    Na základě DMCA požadavku bylo na konci dubna z GitHubu odstraněno 8535 repozitářů se zdrojovými kódy open source emulátoru přenosné herní konzole Nintendo Switch yuzu.

    Ladislav Hagara | Komentářů: 7
    5.5. 00:33 | Nová verze

    Webový prohlížeč Dillo (Wikipedie) byl vydán ve verzi 3.1.0. Po devíti letech od vydání předchozí verze 3.0.5. Doména dillo.org již nepatří vývojářům Dilla.

    Ladislav Hagara | Komentářů: 0
    4.5. 15:00 | Komunita

    O víkendu probíhá v Bostonu, a také virtuálně, konference LibrePlanet 2024 organizovaná nadací Free Software Foundation (FSF).

    Ladislav Hagara | Komentářů: 0
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (63%)
     (8%)
     (15%)
     (15%)
    Celkem 123 hlasů
     Komentářů: 8, poslední 4.5. 08:25
    Rozcestník

    Dotaz: Ochrana programu před CTRL+C

    6.11.2012 17:15 jardA
    Ochrana programu před CTRL+C
    Přečteno: 555×
    Ahoj, snazim se neco bastlit v shellu a zjistil jsem, ze program lze kdykoliv prerusit stisknutim kombinace CTRL+C coz je nemile, jelikoz program po sobe nestihne uklidit. Muj dotaz tedy smeruji na tento problem, lze nejak a) zamezit teto kombinaci, b) nastavit co se musi udelat pri stisknuti teto kombinace, c) vase jiná možnost? Díky za pripadnou pomoc.

    Řešení dotazu:


    Odpovědi

    6.11.2012 17:23 Trdlo
    Rozbalit Rozbalit vše Re: Ochrana programu před CTRL+C
    http://hacktux.com/bash/control/c
    Řešení 1× (victor8)
    6.11.2012 17:59 Kit
    Rozbalit Rozbalit vše Re: Ochrana programu před CTRL+C
    trap
    6.11.2012 23:04 Jooky (inactive) | skóre: 39 | blog: Jooky | Bratislava
    Rozbalit Rozbalit vše Re: Ochrana programu před CTRL+C
    len pre doplnenie:
    trap [COMMANDS] [SIGNALS]
    
    This instructs the trap command to catch the listed SIGNALS,
    which may be signal names with or without the SIG prefix,
    or signal numbers. If a signal is 0 or EXIT,
    the COMMANDS are executed when the shell exits. 
    
    ^C je z pohladu shellu len jeden zo signalov. Viac: http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_12_02.html
    6.11.2012 18:24 NN
    Rozbalit Rozbalit vše Re: Ochrana programu pred CTRL+C
    Mozna by stacilo to spustit na pozadi..
    6.11.2012 23:28 Arnošt Málek | skóre: 17
    Rozbalit Rozbalit vše Re: Ochrana programu před CTRL+C
    Pouzivam trap "" 2 20, takze to sem doplnim, at je tu primo "navod".
    7.11.2012 00:36 l4m4
    Rozbalit Rozbalit vše Re: Ochrana programu před CTRL+C
    Když něčemu pošlu SIGINT, tak to chci ukončit. Tudíž se to má korektně, leč neprodleně ukončit.

    Když to SIGINT ignoruje, následuje přirozeně SIGKILL, který už to ignorovat nemůže.

    Takže jediný výsledek postupu podle tvého návodu bude zabití programu s použitím hrubějšího násilí.
    7.11.2012 06:12 dustin | skóre: 63 | blog: dustin
    Rozbalit Rozbalit vše Re: Ochrana programu před CTRL+C
    Přesně tak to je. Navíc softy, které záměrně ignorují SIGINT, jsou pěkně otravné :)
    7.11.2012 13:48 Arnošt Málek | skóre: 17
    Rozbalit Rozbalit vše Re: Ochrana programu před CTRL+C
    Mam to tak nastaveno ve skriptu, ktery se pouziva jako interpret ... a funguje to tak jak chci. Jak by to tedy melo byt spravne?
    martin-ux avatar 8.11.2012 12:33 martin-ux | skóre: 18 | Bratislava
    Rozbalit Rozbalit vše Re: Ochrana programu před CTRL+C
    niekedy je ale dobre, aby to neskoncilo hned, ale malo cas na ukoncenie. nie je problem spravit counter na ^c a po tretom stisknuti skoncit predcasne, ak je user o tom presvedceny.
    ..when you do things right, people won't be sure you've done anything at all..
    martin-ux avatar 8.11.2012 12:46 martin-ux | skóre: 18 | Bratislava
    Rozbalit Rozbalit vše Re: Ochrana programu před CTRL+C
    este som mohol pre autora prispevku dat kratku uzazku:
    #!/bin/sh
    
    SIGINT_TRAP_COUNTER=3
    
    handler_signit() {
            ((SIGINT_TRAP_COUNTER=$SIGINT_TRAP_COUNTER-1));
    
            if [ $SIGINT_TRAP_COUNTER -lt 1 ]; then
                    printf "debug: handler_signit: ending prematurely\n";
                    exit 1;
            fi
    
            printf "debug: handler_signit: doing cleanup ($SIGINT_TRAP_COUNTER)\n";
            sleep 4; # just a fake cleanup time
    
            exit 0;
    }
    
    trap handler_signit SIGINT
    
    while true ; do
            printf "main_loop: looping ...\n";
            sleep 5;
    done
    
    takto mas moznost odchytit ^c a davas moznost userovi skoncit ten script, ak to naozaj chce.
    ..when you do things right, people won't be sure you've done anything at all..

    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.