Fhuair an lùb-feitheamh againn 35 uair a thìde a’ feitheamh rithe fhèin: pgrep -f agus pkill -f thar SSH
Obrachadh
Air 31 Dàmhair thòisich sinn lùb bheag thar SSH: feitheamh gus an crìochnaich obair eadar-theangachaidh air inneal eile, agus an uairsin ruith obair leantainneach. Chrìochnaich an obair eadar-theangachaidh an oidhche sin. Nuair a choimhead sinn a-rithist dà latha às dèidh làimh, bha an lùb air a bhith a’ feitheamh airson 35 uair a thìde, agus cha do ruith an obair leantainneach a-riamh.
Dè a bh’ san lùb
ssh build-host 'while pgrep -f "i18n_job.py example.com" >/dev/null; do sleep 30; done; ./follow-up.sh'
Tha pgrep -f a’ maidseadh pàtran an aghaidh loidhne-àithne slàn gach pròiseis. Ruithidh SSH an t-àithne eadar comharran-labhairt mar bash -c 'while pgrep -f "i18n_job.py example.com" …', agus tha am pàtran san loidhne-àithne sin. Fàgaidh pgrep am pròiseas fhèin às na toraidhean, ach chan e an slige a thòisich e. Mar sin, fhad ‘s a bha an lùb beò, lorgadh e maidseadh: e fhèin.
A cho-ogha: maraicheas pkill -f an t-slige anns an ruith e
Tha an aon rud a’ tachairt le pkill -f, le toraidhean nas miosa:
ssh build-host 'pkill -f "worker.py --queue a"; nohup python3 worker.py --queue a &'
Tha loidhne-àithne na slige fhèin a’ toirt a-steach am pàtran, mar sin maraicheas pkill an t-slige. Thèid an neach-obrach a stad agus cha tèid a thòiseachadh a-rithist, agus bidh SSH a’ fàgail le còd 255 gun teachdaireachd mearachd. Tha e coltach ri duilgheadas comharran-labhairt, agus sin mar a thuig sinn e an toiseach.
Eadar an t-Sultain agus deireadh an Dàmhair thuit sinn a-steach do chuid dhiubh no an dà chuid co-dhiù deug uair: ath-thòiseachadh nach do thachair a-riamh, lùb a chum sgrùdadh airson trì uair a thìde agus leth, fear eile a chum liosta-feitheamh eadar-theangachaidh airson 50 mionaid, agus an tè seo.
Dè a nì sinn a-nis
- Cromagan sa phàtran:
pgrep -f "[i]18n_job.py example.com". Mar abairt riaghailteach, maidseas[i]an litir i, mar sin maidseas an obair fhathast; tha na caractaran[i]ann an loidhne-àithne na slige, nach eil an abairt a’ maidseadh. Chan eil e cuideachail ach ma tha am pàtran sìmplidh a’ nochdadh àite sam bith eile air an loidhne sin: maidseas àithne ath-thòiseachaidh nas fhaide air adhart air an aon loidhne a-rithist. - Lorg, stad agus tòisich ann an gairmean SSH fa leth. Bidh aon ghairm a’ liostadh nam pròiseasan le
pgrep -af, bidh an ath fhear a’ marbhadh nam PID a chaidh a chlò-bhualadh, bidh treas fear a’ tòiseachadh a’ phròiseis ùir. - Feitheamh air PID, chan air pàtran:
tail --pid=1234 -f /dev/null, nowhile kill -0 1234; do sleep 30; done. - Nas fheàrr fhathast, leig le systemd an obair a riaghladh. Ruith e mar aonad agus faighnich
systemctl is-active, no tòisich e lesystemd-run --wait. Chan eil pàtran ann a dh’fhaodadh a bhith ceàrr. - Gheibh gach feitheamh ceann-latha (
timeout 3h) agus innseadh cuin a thèid a leigeil seachad. Fàilligidh lùb gun cheann-latha gu sàmhach.
Factory Floor, am pasgan-obrach a ruicheas ar innealan, ag obair tro aonadan systemd: cha lorg e pròiseas a-riamh leis an loidhne-àithne aige. B’ iad na lùban a chuir sinn a-steach le làimh a thug buaidh oirnn.