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 17:28 | Bezpečnostní upozornění

Byly zveřejněny informace o bezpečnostní chybě CVE-2017-6074 v Linuxu zneužitelné k lokální eskalaci práv. Jde o chybu v podpoře DCCP (Datagram Congestion Control Protocol). Do linuxového jádra se dostala v říjnu 2005. V upstreamu byla opravena 17. února (commit). Bezpečnostní chyba byla nalezena pomocí nástroje syzkaller [Hacker News].

Ladislav Hagara | Komentářů: 2
dnes 15:00 | Zajímavý software

Společnost Valve vydala novou beta verzi SteamVR. Z novinek lze zdůraznit oficiální podporu Linuxu. Další informace o podpoře této platformy pro vývoj virtuální reality v Linuxu v diskusním fóru. Hlášení chyb na GitHubu.

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

Po necelém roce od vydání verze 0.67 byla vydána verze 0.68 populárního telnet a ssh klienta PuTTY. Podrobnosti v přehledu změn. Řešeny jsou také bezpečnostní chyby.

Ladislav Hagara | Komentářů: 0
včera 21:32 | Nasazení Linuxu

Canonical představuje nejnovější verzi chytré helmy DAQRI s Ubuntu pro rozšířenou realitu. K vidění bude příští týden v Barceloně na veletrhu Mobile World Congress 2017.

Ladislav Hagara | Komentářů: 0
včera 21:31 | Pozvánky

Pro zájemce o hlubší znalosti fungování operačních systémů připravila MFF UK nový předmět Pokročilé operační systémy, v rámci něhož se vystřídají přednášející nejen z řad pracovníků fakulty, ale dorazí také odborníci ze společností AVAST, Oracle, Red Hat a SUSE. Tento předmět volně navazuje na kurz Operační systémy ze zimního semestru, ale pokud máte praktické zkušenosti odjinud (například z přispívání do jádra Linuxu) a chcete si

… více »
Martin Děcký | Komentářů: 6
včera 21:30 | Pozvánky

Czech JBoss User Group Vás srdečně zve na setkání JBUG v Brně, které se koná ve středu 1. března 2017 v prostorách Fakulty Informatiky Masarykovy Univerzity v místnosti A318 od 18:00. Přednáší Tomáš Remeš a Matěj Novotný na téma CDI 2.0 - New and Noteworthy. Více informací na Facebooku a na Twitteru #jbugcz.

mjedlick | Komentářů: 0
20.2. 23:45 | Zajímavý software

Na blogu Qt bylo představeno Qt 3D Studio. Jedná se o produkt dosud známý pod názvem NVIDIA DRIVE™ Design Studio. NVIDIA jej věnovala Qt. Jedná se o několik set tisíc řádků zdrojového kódu. Qt 3D Studio bude stejně jako Qt k dispozici jak pod open source, tak pod komerční licencí. Ukázka práce s Qt 3D Studiem na YouTube.

Ladislav Hagara | Komentářů: 10
20.2. 17:50 | Komunita

Nadace The Document Foundation (TDF) zastřešující vývoj svobodného kancelářského balíku LibreOffice slaví 5 let od svého oficiálního vzniku. Nadace byla představena 28. září 2010. Formálně byla založena ale až 17. února 2012.

Ladislav Hagara | Komentářů: 0
20.2. 12:50 | Komunita

Mozilla.cz informuje, že dosud experimentální funkce Page Shot z programu Firefox Test Pilot (zprávička) se stane součástí Firefoxu. Page Shot je nástroj pro vytváření snímků webových stránek. Umí výběr oblasti, prvku stránky (např. odstavce), nebo uložení snímku celé stránky. Snímky lze ukládat na disk nebo nahrávat na server Mozilly. Nedávno bylo oznámeno, že se součástí Firefoxu stane Activity Stream.

Ladislav Hagara | Komentářů: 51
20.2. 04:10 | Nová verze

Po 10 týdnech vývoje od vydání Linuxu 4.9 (zprávička) oznámil Linus Torvalds, mj. již 20 let žijící v USA, vydání Linuxu 4.10 (LKML). Přehled nových vlastností a vylepšení například na Kernel Newbies a v Jaderných novinách (1, 2 a 3). Kódové jméno Linuxu 4.10 je Fearless Coyote.

Ladislav Hagara | Komentářů: 38
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (13%)
 (2%)
 (71%)
 (4%)
 (10%)
Celkem 685 hlasů
 Komentářů: 66, poslední dnes 18:57
Rozcestník

Dotaz: Oprava scriptu

11.3.2013 12:52 TT
Oprava scriptu
Přečteno: 433×
Ahoj, proč mi podmínka pořád vyhodnocuje exit, i když stejný program není spuštěn? Je to kontrolováno přímo ze scriptu který se kontroluje. Díky
ps aux | grep -v "grep" | grep -q "/home/foo.sh"
if [ $? -eq 0 ]; then
   exit
else
   # echo "pokračuji.."
fi

Odpovědi

11.3.2013 13:00 potato
Rozbalit Rozbalit vše Re: Oprava scriptu
Dotaz nedává moc smysl. exit se spustí, když je návratový kód roury nula. Ten je nula, pokud byl poslední příkaz v rouře úspěšný (pokud nenastavils v bashi pipefail). grep je úspěšný, pokud něco našel. Proč něco našel, nelze z dodaných informací říci, ale když odstraníš -q, tak zjistíš, co našel.

Celé grepování výstupu ps je navíc zvrácené, ps má volby typu -C, které umožňují filtrovat podle příkazu a -o, které umožňuje vypisovat o příkazu jen to, co chceš.
11.3.2013 13:45 TT
Rozbalit Rozbalit vše Re: Oprava scriptu
Tak zkusím lepe položit dotaz, potřebuji zjistit, jestli script již nebeží, jelikož je povolena poze jediná instance programu, a jelikož spouštím to zjištění přímo z toho scriptu který to má zjistit, tudíž je to komplikovanější a podmínka by asi měla být něco jako
if [$res -lt 2 ]
ale nevím jak na to..
11.3.2013 13:47 TT
Rozbalit Rozbalit vše Re: Oprava scriptu
Pokud odstraním -q tak to najde jednou spuštěný script, asi ten ze kterého se ten test, což dáva smysl, ale jak zjsitit jestli je spuětěn jednou nebo vícekrát?
11.3.2013 13:56 ubka7617
Rozbalit Rozbalit vše Re: Oprava scriptu

if [ $(pgrep -c foo.sh)  -eq 0  ]; then
echo nebezi
else
echo bezi

fi

11.3.2013 14:17 TT
Rozbalit Rozbalit vše Re: Oprava scriptu
Výsledek je vždy 0 i když běží program vícekrát..
11.3.2013 14:31 Patrik Uhrak | skóre: 31 | blog: pato
Rozbalit Rozbalit vše Re: Oprava scriptu

Aj takto je vysledok 0 ? :

#! /bin/bash
if [[ "$(pgrep -c "${0##*/}")" -eq 0 ]]
then
    echo nebezi
else
    echo bezi
fi

Ja len, ci si nezabudol zamenit foo.sh za nazov tvojho skriptu. Nic v zlom, sa mi aj horsie uz stalo. :)

11.3.2013 14:56 TT
Rozbalit Rozbalit vše Re: Oprava scriptu

Ja len, ci si nezabudol zamenit foo.sh za nazov tvojho skriptu. Nic v zlom, sa mi aj horsie uz stalo. :)

Ano, stává se to i mě ;-) ale v tomto případě se to opravdu soubor tak jmenuje. No pokud v tom tvém kodu změním -eq 0 za -eq 1 tak to funguje jak má.. Díky moc
11.3.2013 16:55 Patrik Uhrak | skóre: 31 | blog: pato
Rozbalit Rozbalit vše Re: Oprava scriptu

Akurat, ze to v tom pripade nefunguje. Logicky je to nespravne, bo ak je pocet beziacich procesov s tymto nazvom rovny 1, tak dalsi uz nespustim a ak je rovny 0, tak ho spustim a toto je presne moj kod a tvoje zadanie.

Skus dat do svojho kodu nasledovne:

echo '==== kontrola ===='
echo "skript: $0"
echo "vypis procesov:"
ps xau | grep "${0##*/}"
echo '=== koniec ===''

a na zaciatok skriptu, hned za shebang daj

set -x

a daj sem vsetko, co to vypluje.

11.3.2013 17:10 TT
Rozbalit Rozbalit vše Re: Oprava scriptu
Tady to je..

root@debian:~# ./foo.sh
++ echo '==== kontrola ===='
==== kontrola ====
++ echo 'skript: ./foo.sh'
skript: ./foo.sh
++ echo 'vypis procesov:'
vypis procesov:
++ grep foo.sh
++ ps xau
root     13932  0.0  0.0   6544   880 pts/2    S+   17:09   0:00 grep foo.sh
./foo.sh: řádek 7: neočekávaný konec souboru při hledání znaku odpovídajícímu „'“
./foo.sh: řádek 8: chyba syntaxe: nenadálý konec souboru
root@debian:~#
11.3.2013 19:45 Patrik Uhrak | skóre: 31 | blog: pato
Rozbalit Rozbalit vše Re: Oprava scriptu

Skor som mal na mysli, ze by si to pridal k tomu svojmu kodu, mozno by sa ukazalo, co sa skutocne deje. U mna to funguje spravne a este minimalne dalsi clovek z tohto vlakna to potvrdil. A najlepsie, tak s uz spustenym procesom a bez taktiez.

11.3.2013 20:33 TT
Rozbalit Rozbalit vše Re: Oprava scriptu
No mě to běží s tou jedničkou bez problémů, čili to tak nechám akorát bych potřeboval dát do té podmínky pevný název
if [[ "$(pgrep -c "${0##*/}")" -eq 0 ]]
zkoušel jsem to takto ale nejde to
if [[ "$(pgrep -c "foo.sh")" -eq 0 ]]
díky
11.3.2013 21:09 Patrik Uhrak | skóre: 31 | blog: pato
Rozbalit Rozbalit vše Re: Oprava scriptu

Ak pouzijes premennu, tak sa nemusis nikdy starat. Ak to das napevno, tak niekomu das kod, pomenuje si skript inak a uz to nepojde, ako ma. A prechadzat skript, ze kde to este je pouzite, ze mi to pada stale, neviem, su aj zaujimavejsie veci, co riesit. Inak napevno, ako si to ukazal, neviem.

p.s.: Ak ti to bezi s jednickou, tak niekde musi byt zrada, ale kod tu cely nie je. Takze to je na tebe.

12.3.2013 13:52 TT
Rozbalit Rozbalit vše Re: Oprava scriptu
To je sice pravda, ale problém je v tom, že ten soubor sourcnu do toho foo.sh a tím pádem už to nefunguje, jelikož se to provede v tom sourcovaném souboru, jelikož tam je automatické zjištění názvu, což už není foo.sh :-(
12.3.2013 14:51 Patrik Uhrak | skóre: 31 | blog: pato
Rozbalit Rozbalit vše Re: Oprava scriptu

To nie je ziaden problem, vid nasledujuce (dva skripty, jeden test1.bash a druhy test2.bash ):

#! /bin/bash
source test2.bash "$0"
echo "nazov skriptu z test1.bash: ${0##*/}"
#! /bin/bash
echo "nazov hlavneho skriptu zo sourcovaneho test2.bash: ${1##*/}"

Jednoducho je to iba o predavani parametrov.

12.3.2013 15:37 potato
Rozbalit Rozbalit vše Re: Oprava scriptu
A proč to filtruješ podle názvu procesu namísto pidu toho shellu, který je v $$?
11.3.2013 15:30 TT
Rozbalit Rozbalit vše Re: Oprava scriptu
ještě jedna věc,

když nahradím tohle
if [[ "$(pgrep -c "${0##*/}")" -eq 0 ]]
za tohle
if [[ "$(pgrep -c "foo.sh")" -eq 0 ]]
tak to přestane fungovat, proc? Díky
11.3.2013 14:44 ubka7617
Rozbalit Rozbalit vše Re: Oprava scriptu

vola sa to foo.sh ? som to skusal a v pohode funguje spravne

11.3.2013 14:57 TT
Rozbalit Rozbalit vše Re: Oprava scriptu
Ano volá se to foo.sh a u mě to nefunguje, což je divný že u tebe ano :-(

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.