Všem čtenářkám a čtenářům AbcLinuxu krásné Vánoce.
Byla vydána nová verze 7.0 linuxové distribuce Parrot OS (Wikipedie). S kódovým názvem Echo. Jedná se o linuxovou distribuci založenou na Debianu a zaměřenou na penetrační testování, digitální forenzní analýzu, reverzní inženýrství, hacking, anonymitu nebo kryptografii. Přehled novinek v příspěvku na blogu.
Vývojáři postmarketOS vydali verzi 25.12 tohoto před osmi lety představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME Shell on Mobile, KDE Plasma Mobile, Phosh a Sxmo.
Byla vydána nová verze 0.41.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 6.1 nebo novější a také libplacebo 6.338.2 nebo novější.
Byla vydána nová verze 5.5 (novinky) skriptovacího jazyka Lua (Wikipedie). Po pěti a půl letech od vydání verze 5.4.
Byla vydána nová verze 5.4.0 programu na úpravu digitálních fotografií darktable (Wikipedie). Z novinek lze vypíchnout vylepšenou podporu Waylandu. Nejnovější darktable by měl na Waylandu fungovat stejně dobře jako na X11.
Byla vydána beta verze Linux Mintu 22.3 s kódovým jménem Zena. Podrobnosti v přehledu novinek a poznámkách k vydání. Vypíchnout lze, že nástroj Systémová hlášení (System Reports) získal mnoho nových funkcí a byl přejmenován na Informace o systému (System Information). Linux Mint 22.3 bude podporován do roku 2029.
GNU Project Debugger aneb GDB byl vydán ve verzi 17.1. Podrobný přehled novinek v souboru NEWS.
Josef Průša oznámil zveřejnění kompletních CAD souborů rámů tiskáren Prusa CORE One a CORE One L. Nejsou vydány pod obecnou veřejnou licenci GNU ani Creative Commons ale pod novou licencí OCL neboli Open Community License. Ta nepovoluje prodávat kompletní tiskárny či remixy založené na těchto zdrojích.
Nový CEO Mozilla Corporation Anthony Enzor-DeMeo tento týden prohlásil, že by se Firefox měl vyvinout v moderní AI prohlížeč. Po bouřlivých diskusích na redditu ujistil, že v nastavení Firefoxu bude existovat volba pro zakázání všech AI funkcí.
Jaký je rozdíl mezi SIGTERM a SIGKILL (Wikipedie) a proč nepoužívat SIGKILL? Odpověď v nejnovějším komiksu turnoff.us.
Tiskni
Sdílej:
kill -PLEASERIP 1234
.
.
Jinak pokud by byl proces v kernel sekci, tak ho neovlivní ani SIGKILL.
. Akorát je na můj vkus moc orientovanej na Javu :-/.
kill, pak přes ps a grep kontrolovat, jak to dopadlo, a pak ve velké části případů stejně pouštět kill -9. Něco jiného by bylo, kdyby to celé uměl kill udělat sám.
Proč by to kontrolovali přes ps a grep? Stačí ten kill pouštět opakovaně a on ti řekne, že proces už neexistuje (šance, že by se mezi tím stejné ID přidělilo jinému procesu, je dostatečně malá, že s tím dokážu žít). A až tě to přestane bavit, tak akorát dopíšeš -9.
killall jméno a na jiný PID neuteče.
Spíš se bude spouštět znova a znova – akorát nebudeš muset opisovat čísla, ale výsledek je stejný. Procesy většinou spouští nějaký správce, který se jmenuje jinak a killall ho tudíž neukončí.
Ono je prostě lepší, když už člověk spravuje nějaký server, vědět, jak je udělaný.
kill -9 jedinou situací, kdy po sobě program nezvládne uklidit.
SIGKILL nebo jiné situaci, kdy aplikace nedostane čas se ukončit, větší problém než po SIGTERM chyba, a použití SIGKILL tu chybu jenom projeví.
Jasně, ty pracovní procesy by tu sdílenou paměť mohly uklidit, když jim zmizí rodič, ale neřekl bych, že jim to přísluší.Nepřísluší. Úklid po ukončených procesech zpravidla přísluší operačnímu systému, zvlášt pokud se jedná o omezené prostředky a zvlášť pokud je po sobě proces neumí uklidit při novém spuštění. Ale chápu, že svět není ideální, jen se snažím hledat chyby, tam kde se skutečně nacházejí.
Úklid po ukončených procesech zpravidla přísluší operačnímu systémuJo, to by určitě bylo hezké, ale podle všeho tohle rozhraní takhle navržené nebylo
Mno ono to, že se ta věc není schopná ani korektně vypnout (jseš v podstatě omezen na experimentování s hodnotami toho timeoutu tak, aby to "většinou" proběhlo správně, jinak to stejně odstřelí systemd natvrdo) taky není nic moc.To už je ovšem trochu jiné téma.
Prosímtě, korektně vypnout znamená to, že se to korektně vypne.Což taky udělá, když se tomu dá čas. Když si zadáte "dokonči stávající požadavky a pak se vypni", tak se nemůžete divit, když se Apache před vypnutím pokusí dokončit stávající požadavky. Dostáváte přesně to, o co jste si řekl. Jasně, dokončit požadavky může trvat dlouho, zejména když máte klienty na mobilním internetu, kterým vypadlo připojení. Jestli vám to vadí, neměl jste si o to říkat.
A co ty semafory a sajrajt v paměti, co po tom zbydou?Nic - pokud Apache po tom timeoutu ukončíte normálně pomocí SIGTERM, přestane čekat na dokončení všeho a ukončí se během několika vteřin. Platí pro aktuální verze v Debianu Wheezy i Jessie. Jasně, jestli systemd neumí nic jiného, než (1) udělej ExecStop, (2) pošli KillSignal a (3) po timeoutu pošli SIGKILL, tak je to dost na prd. Ale za to už Apache nemůže, protože metoda pro korektní vypnutí (graceful-stop, chvíli počkat, stop, po pár vteřinách je čistě vypnuto) existuje.
Tobě fakt přijde normální, že ta věc 20+ let má bug způsobující, že se v případě nějakého netriviálního vytížení není schopná ukončit ani po třeba 10 minutách a nikoho z vývojárů to nezajímá a nikdo to neřeší?Viz výše. Pokud si řeknete o pomalé ukončení a ukončuje se to pomalu, není to bug.
Jasně, jestli systemd neumí nic jiného, než (1) udělej ExecStop, (2) pošli KillSignal a (3) po timeoutu pošli SIGKILL, tak je to dost na prd.Ve skutečnosti se podle dokumentace timeout aplikuje dvakrát. Jednou před KillSignal a jednou před SIGKILL. Jediné, co dělá ten trik se SIGCONT je, že se na (nastavitelný) timeout čeká dvakrát a nepošle se SIGTERM, tudíž se nedá službě šance na čisté okamžité ukončení. Další věc je, že člověk může v systemd pro ukončení spustit libovolnou sérii příkazů a kterýkoli z těch příkazů může být skriptem, tudíž v tomto případě systemd nepřináší žádné nové omezení.
člověk může v systemd pro ukončení spustit libovolnou sérii příkazů a kterýkoli z těch příkazů může být skriptem, tudíž v tomto případě systemd nepřináší žádné nové omezení.No, hlavně nepřináší žádné zlepšení. Dobastlené skripty tak, aby to "většinou vyšlo", až máme z dob normálního initu.
On ten odkazovaný service soubor je taky přes 2 roky starý, takže možná jenom nereflektuje to, co systemd tenkrát neuměl a dneska umí?Může to tak být. Nebo mohl být i před těmi dvěma lety kopírovaný od jinud nebo tvořený na základě starých znalostí. Jinak souhlasím s tím, že jediné řešení je skutečně Apache nechat udělat graceful-stop a namísto překvapení mu na to vymezit čas a následně udělat stop. Ale to už nezávisí na systemd versus initscripts.
Což taky udělá, když se tomu dá čas. Když si zadáte "dokonči stávající požadavky a pak se vypni", tak se nemůžete divit, když se Apache před vypnutím pokusí dokončit stávající požadavky. Dostáváte přesně to, o co jste si řekl. Jasně, dokončit požadavky může trvat dlouho, zejména když máte klienty na mobilním internetu, kterým vypadlo připojení. Jestli vám to vadí, neměl jste si o to říkat.
Ani to nemusí být mobilní klienti. Ten požadavek může být třeba stahování několikagygabajtového souboru a může trvat hodiny.
Je správné mít několik úrovní ukončování:
a) splň požadavky klientů a korektně se ukonči
b) kašli na klienty a korektně se ukonči
c) ukonči se teď hned (na to stačí kill -9)
apachectl restart" se u vytížených serverů občas (ne moc často) stalo, že server neběžel. IIRC byl problém v tom, že "stop" se za určitých okolností tvářil, že úspěšně proběhl, přestože některý proces ještě chvíli žil, takže "start" pak selhal.
IIRC byl problém v tom, že "stop" se za určitých okolností tvářil, že úspěšně proběhl, přestože některý proces ještě chvíli žil, takže "start" pak selhal.Nevím, jak kdysi, ale pro aktuální apachectl v Debianu restart neznamená stop a start. Ale jestli to tak dřív bylo, tak si dovedu představit, že k něčemu takovému mohlo dojít. To mě netrápí - když chci Apache restartovat, tak mu pošlu SIGTERM a až to jde, runit už si ho nastartuje.