reparenting procesu po preruseni ssh spojeni

Miroslav Lachman 000.fbsd at quip.cz
Wed Mar 25 14:59:56 CET 2020


Jelikoz se problem dnes zase vyskytl nekolikrat po sobe, tak se k tomuto 
tematu vracim...

Dan Lukes wrote on 2020/03/14 09:49:
> 3. chybu procesu, ktery se rozhodne se neukoncovat.

Kdyz je v systemu takhel zaseknuty proces, je nejaka moznost, jak se k 
nemu pripojit nejakym debugovacim nastrojem a zjistit, proc / na cem se 
zaseknul? V tomhle jsem absolutne nezkuseny...

> Mozne reseni:
> a) oprava procesu aby se takhle nechoval (muze to byt chyba PHP nebo 
> dusledek vady interpretovaneho PHP kodu)
> nebo
> b) napsat wrapper, spoustet ze sshd ten a ktery teprve bude volat 
> postizeny proces a ktery bud etransparentni az na ten SIGHUP, ktery 
> nebude dolu predavat 1:1 a misto nej posle jiny signal, na ktery proces 
> reagovat ochotny je, propadne SIGKILL, ktery sam obslouzit (a tedy 
> ignorovat) nemuze.

Ten wrapper by taky byla moznsot, ale nejsem si jisty, jestli tu zmenu 
akceptuje klient (budou muset zmenit neco na sve strane s Jenkinsem)

> Zrejme dalsi prizmak vady toho SW.
> Tak mu omez maximalni dovoleny spotrebovany cas procesoru. Po prelezeni 
> sift limitu dostane SIGXCPU coz ho defaultne taky ukonci, ale i tohle 
> muze ignorovat. Prelezeni hard limitu by ale uz prezit nemel.

Pod stejnym uzivatelem se na tom serveru spousti vice uloh. Funguje 
tohle tak, ze se ten limit z login.conf bude aplikovat jen na ten 
konkretni proces, ktery presahne ten CPU time? Tzn. opravdu to killne 
jen tenhle vadny proces?

V manualu k login.conf je

RESOURCE LIMITS
      Name               Type      Notes     Description
      cputime            time                CPU usage limit.

"time" ma jakou jednotku? Pocet sekund, ktere muze proces sezrat na CPU 
a pak dojde k jeho ukonceni?

Mirek


More information about the Users-l mailing list