Thug an coileanach againn na seirbheisean a stad sinn gu h-àraidh air ais gu ruith
Obrachadh
Tha aon de na coileanaich againn a’ tòiseachadh seirbheis sam bith againn a tha comasach ach nach eil a’ ruith. Dh’fhosgail e seirbheisean a stad sinn gu h-àraidh dà uair san Dàmhair. An dàrna turas, fhuair luchd-tadhail air aon de na làraichean againn mearachdan airson mu 45 mionaid.
Carson a tha an coileanach sin ann
Chan eil seirbheis a thèid a-mach gu glan nuair a gheibh i SIGTERM, mar eisimpleir leis gun do mharaich rudeigin i le ainm, “failed” a rèir systemd. Cha toir Restart=on-failure air ais i, agus cha liostaich systemctl --failed i. Bidh i sìos gus an toir cuidean fa-near gu h-obann. Mar sin bidh an coileanach a’ lorg seirbheisean a tha comasach ach nach eil a’ ruith, agus gan tòiseachadh.
Is e an trioblaid gu bheil seirbheis a stad thu le làimh coltach ris gu mionaideach.
A’ chiad turas
Air 7 Dàmhair stad sinn neach-obrach bhidio le systemctl stop aig 12:47 gus an ciudha obrach aige a dheasachadh. Aig 12:55 bha e a’ ruith a-rithist: bha an coileanach air a thòiseachadh.
An dàrna turas
Air 21 Dàmhair bha feum againn air cuimhne an inneil a tha cuideachd a’ frithealadh dà de na làraichean againn airson deuchainn modail. Stad sgriobt aplacaidean-lìn nan làraichean, obair-cho-ghnàthachaidh agus coimeasgair dàta, a-rithist le systemctl stop. Mu còig mionaidean às dèidh sin thug timer a tha a’ coimhead air na làraichean, agus aig 19:14 an coileanach, an tunail agus na h-aplacaidean-lìn air ais.
Ghabh an tunail ri trafaig a-rithist, ach cha b’ urrainn dha na h-aplacaidean-lìn freagairt: bha am modail fo dheuchainn a’ cumail 114 GiB de chuimhne an inneil. Bho mu 19:14 gu 20:00, fhuair cuid de luchd-tadhail mearachdan 502. Aig 20:00 chuir sinn an tunail, na h-aplacaidean-lìn agus an obair-cho-ghnàthachaidh à comas, agus stad sinn an timer coimhead.
An riaghailt a chleachdas sinn a-nis
- Cuir seirbheis air stad le bhith ga cur à comas:
sudo systemctl disable --now <unit>. Thoir air ais i lesudo systemctl enable --now <unit>. Chan eil an coileanach againn a’ coimhead ach air seirbheisean comasach, mar sin thèid seirbheis à comas fhàgail na aonar. - Cuir stad air gach rud a dh’fhaodadh a thoirt air ais: an tunail aig a bheil i agus timer sam bith a tha a’ coimhead oirre.
- Is rèis a th’ ann an stad goirid. Ma chleachdas tu
stopa-mhàin, crìochnaich mus tig an ath sheic, a thig taobh a-staigh mionaidean air na h-innealan againn.
Dà ribe systemd eile bhon aon mhìosan
systemctl mask --runtimechan eil dad a' dèanamh airson faidhle aonaid ann an /etc/systemd/system. Tha aonadan ann an /etc a' toirt prìomhachas os cionn a' chòmhdaich runtime ann an /run, mar sin bidh an t-òrdugh a' soirbheachadh agus bidh an t-seirbheis fhathast a' tòiseachadh. Gus seirbheis a chumail, cleachdaidh sinn drop-in leConditionPathExists=!/etc/<name>.hold: fhad 's a tha am faidhle sin ann, cha tòisich an t-seirbheis, an dà chuid aig boot no le làimh.systemctl is-activeag ainmeachadh seirbheis oneshot a tha a' ruith mar inactive. Fhad 's a tha seirbheisType=oneshota' ruith, tha an staid aice "activating", mar sin bidhis-activea' clò-bhualadh sin agus a' tilleadh 3. Bidh lùb marwhile systemctl is-active --quiet job.service; do sleep 60; done, a chaidh a dhèanamh airson feitheamh ri obair oidhche, a' fàgail sa bhad. Leugh an staid an àite sin: tha active, activating, reloading no deactivating uile a' ciallachadh gu bheil i fhathast a' dol.
Factory Floor a' coimhead airson seirbheisean comasach nach eil a' ruith. Aig an toiseach, chan eil e ach gan aithris, agus chan eil e gan tòiseachadh ach ma chuireas tu sin air. Bhon dreach 1.0.3, tha an rabhadh aige cuideachd ag innse mar a chuireas tu seirbheis air stad gu h-àraidh, agus tha an runbook aige ag ràdh an rud ceudna.