Ku guuldareysiga bilaabista OpenVPN wuxuu inta badan yimaadaa cabasho ku saabsan kheyraadka oo ay la socoto soo jeedin niyad wanaagsan oo ah in la kordhiyo xad, soo jeedintuna waxay shaqaysaa kaliya qiyaastii kala badh kiisaska. Guuldarrooyinkaas waxaa ka dambeeya laba tiriyeyaal aan xiriir la lahayn. Mid waa xad kernel ah oo ku saabsan tirada hawlo uu leeyahay aqoonsi isticmaale dhab ah, waxaana la dhaxlaa marka habka la fuliyo. Kan kale waa miisaaniyad cgroup oo maareeyaha adeeggu ku dabaqo hal unug iyo wax kasta oo uu farcamo. Akhrinta qiimaha dhabta ah ee mid kasta, unugga dhab ahaan shaqeeya, wax ka yar malo.

Laba tiriyeyaal, laba su'aalood

LimitNPROC waa RLIMIT_NPROC hoos yimaada magac systemd, unugga xisaabtiisuna waa aqoonsiga isticmaale dhabta ah. Hab kasta oo uu isticmaalahaas leeyahay waxaa lagu tiriyaa isku wadarta, oo ay ku jirto shaqada ay bilaabeen unugyo kale, fadhi gelitaan ama hawsha jadwalka. Sidaas darteed xadkani ma aha saqaf adeeg kasta, xitaa marka lagu dejiyo gudaha unug adeeg, adeeg kasta oo u farcama caawiye macmiil kasta waxay la tartamaa wax kasta oo kale oo ka shaqeeya xisaabtaas. Hawsha cron ee mashquulsan ee isla isticmaalahaas hoostiisa waxay unug VPN ka riixi kartaa xariiq marnaba uusan keligiis ka gudbin.

TasksMax wuxuu leeyahay milkiile kale: kontoroolka pids ee cgroup unugga, kaas oo tiriya hawlo halkii uu ka tirin lahaa habab. Xadhkaha waa hawlo, sidaas darteed daemon u eg hal xadhig laakiin leh koox shaqaale ah wuxuu isticmaali karaa miisaaniyad marka hore u muuqata mid aad uga weyn tirada hababkiisa. EffectiveTasksMax waxay soo sheegtaa waxa dhab ahaan ay ogolaato kala sarreynta cgroup ka dib marka qaybaha waalidka ay hadalkooda yiraahdeen.

Sababta ka reebka root u beddelo jawaabta

Kernel ma dabaqo RLIMIT_NPROC hab sita CAP_SYS_RESOURCE ama CAP_SYS_ADMIN, taas darteed unug ku shaqeeya root isagoon ka tanaasulin mudnaanta wuxuu si dhab ah u noqdaa mid aan xad lahayn dejintaas. Ka reebkan keligiis ayaa sharraxaya talooyinka iskhilaafsan ee dadku isweydaarsadaan: kordhinta LimitNPROC waxay hagaajisaa baahinta ka tanaasushay mudnaanta oo waxba ma qabato tan mudnaanta sii haysatay. Ka hor inta aadan dejintaas amaano ama eedayn, hubi User= iyo in daemonku beddelo aqoonsigiisa ka dib bilowga. Unug leh mudnaan oo hadhow u gudba xisaab aan mudnaan lahayn wuxuu mar kale ku hoos dhacaa xadka waqtiga gudbinta, taas oo dhacdooyinka guuldarrada iyo sidoo kale isku xigxiga waqtiga u qalmo akhris.

Marxaladda guuldarradu way sii cidhiidhisaa. Diidmo inta lagu jiro diyaarinta fulinta, khalad farcama oo uu daemonku isagu soo sheegay, iyo abuurista hawl oo la diiday gudaha cgroup waxay soo saaraan xariiqyo journal oo kala duwan, midkoodna kaliya ayaa lagaga jawaabaa miisaaniyad weyn.

Akhri qiyamka dhabta ah, ma aha kuwa shellka

ulimit -u shell isdhexgal ah waxay sharraxaysaa shellkaas. Ma sharraxayso waxa maareeyaha adeeggu siiyey daemonka, waxbana ma sheegto xisaabinta cgroup. Beddelkeeda weydii unugga, adigoo isticmaalaya magaca nuqulka ka jira martida oo aan ahayn tusaale buug-gacmeed.

systemctl show [email protected] -p User -p LimitNPROC -p TasksCurrent -p TasksMax -p EffectiveTasksMax
cat /proc/$(systemctl show -p MainPID --value [email protected])/limits | grep -i processes

Gudaha weel jawaabtu waxay u baahan tahay laba akhris oo dheeraad ah, sababtoo ah qiimaha gudaha ee infinity wuxuu sharraxayaa kaliya aragtida martida. Weydii milkiilaha martida saqafka pids ee weelka laftiisa, oo xaqiiji in maareeyaha adeeg ee gudaha uu kontoroolkaas gudbin karo. Unug dhex galay ma hayn karo miisaaniyad uusan cgroup waalidkiisu waligiis siin.

Qiyaas cabbirka hagaajinta oo ku caddee culayska hoostiisa

Nambarka ka dooro culayska shaqada halkii aad ka dooran lahayd qoraalka khaladka. Tiri hababka uu daemonku bilaabo macmiil kasta oo ku xiran ama yeer kasta oo caawiye, ku dhufo isku waafaqsanaanta la filayo in baahintu qaado, ku dar xoogaa fogaan ah fadhiyada maamulka, ka dibna isbarbar dhig nambarkaas labada qiime ee dhabta ah. Beddelka maxalliga ah ee drop-in wuxuu beddelka ka dhigaa mid dib loo eegi karo oo ka badbaadaa casriyaynta xirmooyinka, halka tafatirka faylka unug la soo diray waxay qarinaysaa isbeddelka ilaa casriyaynta xigta ay beddesho. Qor xisaabta wax ka xigta beddelka, sababtoo ah qofka xiga ee kordhin ama dhimmi doona wuxuu u baahan yahay mala awaallada, ma aha nambarka ugu dambeeya.

Isbeddellada miisaaniyadda waxaa lagu dabaqaa fulinta, sidaas darteed dib u soo dejinta kaligeed ma beddesho cabbirka hababka hore u shaqeynaya. Dib u bilaab unugga iyada oo loo marayo wareeggeeda caadiga ah, aqbal carqaladda fadhiga, oo akhri tiriyeyaasha mar kale nuqulka cusub.

sudo systemctl daemon-reload
sudo systemctl restart [email protected]
systemctl show [email protected] -p TasksCurrent -p EffectiveTasksMax
sudo journalctl -u [email protected] -b --no-pager | tail -n 20

Waxa caddeeya hagaajinta waa unug dib loo bilaabay oo tirada hawliisa ay ka hooseyso labada saqaf inta uu qaado culayska loogu talagalay, oo ay la socoto journal aan hadda ka soo sheegayn dhammaadka hawlo ama farcamo isla marxaladdaas. Hay nambarada ka hor iyo ka dib la socodka isbeddelka, si baaritaanka xiga uu uga bilaabmo cabbir oo aan uga bilaabmin isla taladaas. Haddii tirada ay weli gaarto saqafka, xisaabta ayaa qaldanayd ee ma aha xadka si shil ah u yaraa, farqigaasna waa mudan in la ogaado ka hor dib u bilaabista xigta.

Maqaallo la xiriira