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 19:33 | Nová verze

    Bylo vydáno Ubuntu 20.04.6 LTS, tj. šesté opravné vydání Ubuntu 20.04 LTS s kódovým názvem Focal Fossa. Přehled novinek v poznámkách k vydání a v přehledu změn.

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

    Připojit neznámý USB flash disk do počítače může být nebezpečné. Dokonce může jít i o život. Někdo rozeslal ekvádorským novinářům USB flash disky, které po připojení do počítače explodují [BBC, Twitter].

    Ladislav Hagara | Komentářů: 2
    včera 13:33 | Nová verze

    Byla vydána nová verze 7.4 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a v informačním videu.

    Ladislav Hagara | Komentářů: 0
    22.3. 21:55 | Nová verze

    Byla vydána verze 11.0 s kódovým jménem Aramo linuxové distribuce Trisquel GNU/Linux. Založena je na Ubuntu 22.04 LTS a podporována bude do roku 2027. Trisquel patří mezi svobodné distribuce doporučované Nadací pro svobodný software (FSF).

    Ladislav Hagara | Komentářů: 0
    22.3. 16:55 | IT novinky

    Mozilla založila startup Mozilla.ai a vložila do něj 30 milionů dolarů. Cílem je vývoj důvěryhodné, nezávislé a open source AI.

    Ladislav Hagara | Komentářů: 2
    22.3. 16:33 | Nová verze

    Po půl roce vývoje od vydání verze 43 bylo vydáno GNOME 44 s kódovým názvem Kuala Lumpur. Přehled novinek i s náhledy v poznámkách k vydání a v novinkách pro vývojáře. Krátké představení na YouTube.

    Ladislav Hagara | Komentářů: 28
    22.3. 13:33 | IT novinky

    Letošní Turingovou cenu (2022 ACM A.M. Turing Award) získal Bob Metcalfe za vynalezení, standardizaci a komercializaci Ethernetu.

    Ladislav Hagara | Komentářů: 0
    22.3. 07:00 | Nová verze

    Svobodná webová platforma pro sdílení a přehrávání videí PeerTube (Wikipedie) byla vydána ve verzi 5.1. Přehled novinek i s náhledy v oficiálním oznámení a na GitHubu.

    Ladislav Hagara | Komentářů: 0
    21.3. 18:22 | Nová verze

    Byla vydána Java 20 / JDK 20. Nových vlastností (JEP - JDK Enhancement Proposal) je 7. Nová Java / JDK vychází každých 6 měsíců. LTS verze je 17.

    Ladislav Hagara | Komentářů: 7
    21.3. 16:44 | IT novinky

    Google spustil konverzační AI Bard. Vyzkoušet lze zatím pouze ve Spojených státech a Spojeném království. Více v Bard FAQ.

    Ladislav Hagara | Komentářů: 2
    Používáte WSL (Windows Subsystem for Linux)?
     (74%)
     (12%)
     (4%)
     (10%)
    Celkem 302 hlasů
     Komentářů: 4, poslední dnes 06:42
    Rozcestník


    Dotaz: Ochrana programu před CTRL+C

    6.11.2012 17:15 jardA
    Ochrana programu před CTRL+C
    Přečteno: 547×
    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.