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
--
FreeBSD mailing list (users-l@freebsd.cz)
http://www.freebsd.cz/listserv/listinfo/users-l

Odpovedet emailem