Bash - blokované ukončení kolony

Vladimir Macek macek na sandbox.cz
Úterý Březen 26 12:31:43 CET 2013


On 26.3.2013 10:51, Miroslav Vancl wrote:
>> O shellu něco vím, ale násilnému ukončování procesů se vyhýbám kdykoli to
>> jen jde. Je tam na můj vkus příliš mnoho hazardů. Snažím se to jakkoli
>> obejít, v prvé řadě změnou režimu práce.
>>
> Nevím proč bych se měl bát poslat SIGINT nebo SIGTERM tcpdumpu, když je na
> to připravený. Signály jsou snad legální způsob komunikace, ne ?

Signály nikdo nezakazuje, ale nemusím je pokládat za rovnocenné k jinému
IPC. :) Osobně (a nikomu to nevnucuju) je považuju za výjimečný způsob
"vyrušení z díla".

Jsou tak trošku asynchronní, jejich obsluha a zotavení z nich v programech
je netriviální. A vynucují si něco, co se přijímajícímu programu nechce
dělat, na co často není pořádně programátorem připraven. Nemluvím o
konkrétním příkladu tcpdumpu, kde je signál snad jediné očekávané ukončení.

Obecně řečeno, ve svém kódu preferuju "poklidné" plynutí od začátku do
předem očekávaného konce, případně nekonečnou smyčku probouzenou událostmi.


>
>> Pokud bych byl přesvědčen, že v zadání popsaný režim práce je nutný tak jak
>> je, osobně bych vyhledal pcap podporu pro Python,
>> https://www.google.com/search?q=python%20pcap&lr= a udělal to celé na pár
>> řádků v Pythonu bez zabíjení. Třeba příklad na stránce
>> http://code.google.com/p/pypcap/ vypadá kouzelně jednoduše.
>>
> To by asi taky šlo, nejsem sice pythonec ale perlíř, v principu je to
> určiitě jedno. Mě se pro takovou jednorázovku nechtělo psát "normální"
> program, prostě jsem se chtěl držet poučky, že vše již bylo zprogramováno a
> je jenom potřeba správně poskládat existující programy :-)

Python je často pokládán za tmelící jazyk, taky spojuje různé hotové
komponenty. Jde o úhel pohledu.

Na bash skriptu není nic "nenormálního", akorát je to interpretační proces,
který je "náhodou" optimalizován, aby se s ním ovládal OS. :)

Bash i Python jsou interprety svého skriptovacího jazyka a jestli se spustí
jeden nebo druhý je ve výsledku úplně jedno, principiálně i technicky. :)

Jen můj pohled a opět, nikomu ho nevnucuju.

V.



Další informace o konferenci Linux