Modhanna íocaíochta Abuse

Conas SuperVisor a shocrú

18.04.2022, 23:02

Chun próiseálaithe a bhainistiú, tá córais tosaigh ag Linux cosúil le systemd. Má theastaíonn réiteach níos simplí uait, clár a fhéadfaidh próisis d’iarratais a bhainistiú, sa chóras nó i gcoimeádán Docker. Tá a leithéid de chlár ann - is maoirseoir é. Bainisteoir próisis foinse oscailte atá simplí go feidhmiúil scríofa i Python, leis ar féidir leat an líon cóipeanna atá ag teastáil de phróiseas a sheoladh agus monatóireacht a dhéanamh ar a stádas. Ansin inseoimid duit conas Maoirseoir a shuiteáil agus a chumrú ag baint úsáide as Ubuntu 20.04 mar shampla.

Maoirseoir a shuiteáil

Is é an bealach is éasca chun an clár a fháil ná é a shuiteáil ó na stórtha oifigiúla. Chun seo a dhéanamh ní mór duit an t-ordú a rith:

 $ sudo apt install supervisor

Conas SuperVisor a shocrú

Más mian leat go n-oibreoidh an clár i gcónaí, ní mór duit é a chur leis an am tosaithe agus é a rith. Rith:

 $ sudo systemctl enable supervisor --now

Conas SuperVisor a shocrú

Ansin is féidir leat an stádas a fheiceáil ag baint úsáide as an ordú:

 $ sudo systemctl status supervisor

Conas SuperVisor a shocrú

Próiseas socraithe

Tá an comhad cumraíochta suite ag /etc/supervisor/supervisord.conf. Seo iad na príomhshocruithe. Chun próisis seolta a chumrú, is fearr an /etc/supervisor/conf.d/. Is féidir an príomhchomhad cumraíochta a fhágáil mar réamhshocrú. Breathnaímid ar conas comhaid cumraíochta a chruthú do chláir. Breathnaíonn an chomhréir rannóige do phróiseas amháin mar seo:

variable name value

I gcás gach próiseas, ní mór na hathróga seo a leanas a phasáil ar a laghad ionas gur féidir é a thosú agus a ghnóthú go huathoibríoch tar éis timpiste:

  • directory - eolaire oibre;
  • command - ordú tosaithe próisis;
  • user - an t-úsáideoir a seolfar an próiseas thar a cheann;
  • autostart - an gá an próiseas a thosú go huathoibríoch;
  • autorestart - an gá an próiseas a atosú;

Mar sin féin, tá i bhfad níos mó socruithe ar fáil, seo cuid de na cinn a bheidh faoi chaibidil san alt seo:

  • priority - tosaíocht don phróiseas atá á sheoladh;
  • environment - athróga comhshaoil nach mór a chur ar aghaidh chuig an bpróiseas;
  • stdout_logfile - cá háit le haschur stdout an phróisis a atreorú;
  • stderr_logfile - cá háit le haschur stderr an phróisis a atreorú;
  • process_name - ainm an phróisis, agus an cumas an chóipuimhir a ionadú;
  • numprocs - líon na gcóipeanna seolta den phróiseas;
  • startretries - líon na n-iarrachtaí chun an clár a thosú;
  • redirect_stderr - aschur earráide próisis a atreorú chuig aschur maoirseoirí;
  • redirect_stdout - aschur próisis a atreorú chuig aschur maoirseora.

Chun tuiscint agus sampla níos fearr a fháil, déanaimis script a reáchtáil i PHP, a bheidh ar crochadh sa chúlra:

 $ sudo vi /home/sergiy/program/process.php <?php echo "Started..."; while(true){ sleep(5); }

Is féidir leat comhad cumraíochta maoirseora ar leith a chruthú don phróiseas. Is féidir leat an chumraíocht a chur isteach go díreach ag deireadh an phríomhchomhad cumraíochta, ach is fearr gan é seo a dhéanamh. Tá sé níos fearr comhad cumraíochta ar leith a chruthú do gach clár san eolaire /etc/supervisor/conf.d/ leis an ainm *.conf. Mar shampla, don chlár seo beidh cuma mar seo ar an gcomhad seo:

 $ sudo vi /etc/supervisor/conf.d/process.conf [program:process] directory=/home/sergiy/program/ command=/usr/bin/php process.php user=sergiy autostart=true autorestart=true

Ansin ní mór duit maoirseoir a atosú, is féidir é seo a dhéanamh ag baint úsáide as systemctl:

 $ sudo systemctl restart supervisor

Nó ag baint úsáide as an áirgiúlacht supervisorctl :

 $ sudo supervisorctl reload

Conas SuperVisor a shocrú

Is féidir leat féachaint freisin ar stádas na bpróiseas cumraithe ag baint úsáide as an ordú:

Conas SuperVisor a shocrú

Má tá an próiseas i stádas RUNNING, tá sé seo go léir go maith agus seoladh go rathúil é. Ach sa chás seo, seoltar an próiseas i gcás amháin, agus go minic is gá roinnt cóipeanna den phróiseas céanna a sheoladh. Chun seo a dhéanamh, is féidir leat na paraiméadair process_name agus numprocs a úsáid. Ceadaíonn an chéad cheann duit ainm an phróisis a mhodhnú ionas go mbeidh an uimhir chóip ann, agus sonraíonn an dara ceann cé mhéad cóip atá le rith.

Líontar an athróg process_name de ghnáth le teimpléad formáidithe teaghrán python ina bhfuil ainm an chláir agus uimhir an phróisis: %(program_name)s_%(process_num)02d . Anseo idir lúibíní tá ainm an athróg, agus a chineál ina dhiaidh sin. Mar shampla, chun an clár céanna a rith i gceithre snáithe, ní mór an comhad cumraíochta a athrú go dtí an fhoirm seo:

 $ sudo vi /etc/supervisor/conf.d/process.conf [program:process] directory=/home/sergiy/program/ command=/usr/bin/php process.php user=sergiy autostart=true autorestart=true process_name=%(program_name)s_%(process_num)02d numprocs=4

Anois ní mór duit supervisorctl a atosú agus beidh 4 phróiseas ar siúl cheana féin:

 $ sudo supervisorctl status

Conas SuperVisor a shocrú

Ag an am céanna, is féidir leat a shábháil ar fad an t-aschur sonraí ag an gclár go comhad logáil isteach. stderr_logfile. na paraiméadair stdout_logfile agus stderr_logfile chuige seo. Mar shampla, is féidir leat comhad logála dá fhorghníomhú a thaispeáint ar dheis san fhillteán leis an gclár.

 $ sudo vi /etc/supervisor/conf.d/process.conf [program:process] directory=/home/sergiy/program/ command=/usr/bin/php process.php user=sergiy autostart=true autorestart=true process_name=%(program_name)s_%(process_num)02d numprocs=4 stdout_logfile=/home/sergiy/program/process.log stderr_logfile=/home/sergiy/program/process.log.error

Tar éis duit an tseirbhís a atosú, beidh logs le feiceáil i bhfillteán an chláir:

Conas SuperVisor a shocrú

Mar an gcéanna, más mian leat aschur do phróisis a atreorú chuig aschur caighdeánach maoirseora, ba cheart duit na redirect_stdout. redirect_stderr agus redirect_stdout a úsáid. Má tá aon athróg timpeallachta ag teastáil ó do chlár, is féidir leat iad a chur ar aghaidh ag baint úsáide as paraiméadar an chomhshaoil. Ní mór athróga a scríobh scartha le camóga. Mar shampla:

 $ environment=DISPLAY=":1",HOME="/root"

Tar éis gach athrú cumraíochta, ná déan dearmad an maoirseoir a atosú chun na hathruithe a chur i bhfeidhm. Is féidir leat próisis a bhainistiú ag baint úsáide as an bhfóntas maoirseachta. Mar a thuig tú cheana, chun liosta na bpróiseas a fheiceáil is gá duit a rith:

 $ sudo supervisorctl status

Ansin, agus ainm an phróisis ar eolas agat, is féidir leat é a atosú, mar shampla process:process_00 :

 $ sudo supervisorctl restart process:process_00

Conas SuperVisor a shocrú

Stop:

 $ sudo supervisorctl stop process:process_00

Nó rith:

 $ sudo supervisorctl start process:process_00

Ina theannta sin, is féidir leat ceangal leis an bpróiseas agus féach cad a aschuireann sé go stdout/stderr ag baint úsáide as an fg:

 $ sudo supervisorctl fg process:process_00

D'fhéachamar ar an gcaoi a bhfuil supervisor cumraithe, chomh maith le conas an clár a úsáid chun próisis a bhainistiú.